FluxFlow.Components.Sources 3.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package FluxFlow.Components.Sources --version 3.0.0
                    
NuGet\Install-Package FluxFlow.Components.Sources -Version 3.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FluxFlow.Components.Sources" Version="3.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FluxFlow.Components.Sources" Version="3.0.0" />
                    
Directory.Packages.props
<PackageReference Include="FluxFlow.Components.Sources" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FluxFlow.Components.Sources --version 3.0.0
                    
#r "nuget: FluxFlow.Components.Sources, 3.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FluxFlow.Components.Sources@3.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FluxFlow.Components.Sources&version=3.0.0
                    
Install as a Cake Addin
#tool nuget:?package=FluxFlow.Components.Sources&version=3.0.0
                    
Install as a Cake Tool

FluxFlow.Components.Sources

Standalone deterministic source nodes for FluxFlow, built on the FluxFlow.Nodes kit. Every node is a self-contained TPL Dataflow processor: new it, LinkTo the next node, StartAsync() it, and run it — no engine, registry, or runtime required. All timing is driven by an injected TimeProvider, so tests stay deterministic with a FakeTimeProvider.

Nodes

Node Kind Shape Purpose
GeneratedSourceNode<T> source Output Emits a configured list of T values as FlowMessage<T>.
SequenceSourceNode source Output Emits a deterministic numeric FlowMessage<SourceSequenceItem> sequence.

Both nodes are zero-input emitters. Call StartAsync() and they produce until their configured count is reached (source complete) or they are stopped via Complete()/DisposeAsync(). Every emitted item is a FlowMessage<T> envelope with a fresh CorrelationId. Lifecycle notes (started, emitted, completed, failed) surface on the Events port using SourceDiagnosticNames; failures surface a FlowError on the Errors port.

Generated

await using var node = new GeneratedSourceNode<AppMessage>(
    new GeneratedSourceOptions
    {
        Name = "feed",
        OutputType = "app.message",
        Loop = true,
        MaxItems = 5,
        IntervalMilliseconds = 100
    },
    items: new[]
    {
        new AppMessage("A-100", "alpha"),
        new AppMessage("A-101", "beta")
    });
node.Output.LinkTo(downstream);
await node.StartAsync();

The host materializes (and, if it started from JSON, deserializes) the items it wants to emit and hands them in directly — the package no longer resolves output types from strings or deserializes JSON. MaxItems caps the emitted count, and Loop = true (which requires MaxItems) cycles through the items until that cap is reached.

Sequence

await using var node = new SequenceSourceNode(new SequenceSourceOptions
{
    Name = "numbers",
    Start = 10,
    Step = 5,
    Count = 3,
    InitialDelayMilliseconds = 0,
    IntervalMilliseconds = 0
});
node.Output.LinkTo(downstream);
await node.StartAsync();

SequenceSourceNode emits SourceSequenceItem values with a name, sequence number, computed value (Start + Step * index), the start/step inputs, and a timestamp from the injected clock.

Deterministic time

Pass a TimeProvider to either node's constructor (it defaults to TimeProvider.System). Both honor InitialDelayMilliseconds and IntervalMilliseconds off that clock, so tests can supply a FakeTimeProvider and advance it to release each delay without real-time waits, and item timestamps come from the configured clock's timeline.

Composition Guidance

Use this package as one part of a host-composed graph. See Component Composition for recommended host boundaries, package boundaries, and extraction timing.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FluxFlow.Components.Sources:

Package Downloads
FluxFlow.Components.Sources.Composition

Typed generated and sequence source registration and Designer metadata over host-owned clocks.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
7.0.0-rc.1 71 9/5/2026
6.0.0 189 8/3/2026
3.1.2 136 7/3/2026
3.1.1 169 7/2/2026
3.0.0 124 6/19/2026
2.0.0 138 6/18/2026
1.2.1 120 6/15/2026
1.2.0 420 6/12/2026
1.1.0 119 6/5/2026
1.0.0 122 6/4/2026
0.2.0-alpha.1 240 6/2/2026
0.1.1-alpha.1 78 6/2/2026
0.1.0-alpha.1 92 6/1/2026

Rebuilt on the FluxFlow.Nodes kit: source.generated and source.sequence are FlowSource<T> sources (started via StartAsync, items minted as FlowMessage envelopes carrying a fresh correlation id) that time off the injected TimeProvider. The engine factories, module, registration extensions, ports, type constants, design-metadata provider, the definition-options reader, and the JSON item/string-to-Type resolution layer (SourcesComponentOptions) are removed; GeneratedSourceNode takes its options plus the already-materialized items, SequenceSourceNode takes its options, and both take a TimeProvider directly and depend only on FluxFlow.Nodes (runs without the engine).