QuickPulse 0.2.0

dotnet add package QuickPulse --version 0.2.0
                    
NuGet\Install-Package QuickPulse -Version 0.2.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="QuickPulse" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="QuickPulse" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="QuickPulse" />
                    
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 QuickPulse --version 0.2.0
                    
#r "nuget: QuickPulse, 0.2.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 QuickPulse@0.2.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=QuickPulse&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=QuickPulse&version=0.2.0
                    
Install as a Cake Tool

QuickPulse

LINQ with a heartbeat.

A tiny library for building stateful, inspectable, composable flows.

Getting Started

QuickPulse lets you write LINQ expressions that react to values, accumulate state, and emit traces along the way.

Signal.From(
        from input in Pulse.Start<string>()
        from isFirst in Pulse.Gather(true)
        let capitalized = char.ToUpper(input[0]) + input[1..]
        let evenLength = input.Length % 2 == 0
        from _1 in Pulse.TraceIf(isFirst.Value, () => capitalized)
        from _2 in Pulse.TraceIf(!isFirst.Value, () => $" {input}")
        from _3 in Pulse.TraceIf(evenLength, () => ", a looking glass")
        from _ in Pulse.Effect(() => isFirst.Value = false)
        select input)
    .SetArtery(TheString.Catcher())
    .Pulse("a deep dark forest")
    .Pulse("and a trail of dead generators.")
    .GetArtery<Holden>()
    .Whispers();

// => "A deep dark forest, a looking glass and a trail of dead generators."

Documentation

QuickPulse is fully documented, with real, executable examples for each combinator and concept.

You can explore it here:

Or, ... see A Quick Pulse for a hands-on quickstart.

Highlights

  • Composable Flow<T> pipelines using LINQ.
  • Stateful Signal<T> execution.
  • Built-in tracing via IArtery.
  • Conditional logic (TraceIf, EffectIf, When).
  • Scoped state and reversible manipulations.
  • Integration with file logging and string capture.

Why QuickPulse Exists?

Do you know how you sometimes leave your house, maybe to get some cigarettes, and start thinking about something? Your brain takes over. You walk straight past the shop, and the legs just keep going. An hour later, you look up, and you're in the next village wondering how you got there.

No? Just me?

Well, okay.

It happens in code too, ... quite a lot. This library is the result of one of those walks through a dark forest. And yes, it did literally involve Trees.

Installation

QuickPulse is available on NuGet:

Install-Package QuickPulse

Or via the .NET CLI:

dotnet add package QuickPulse
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 was computed.  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.
  • net8.0

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on QuickPulse:

Package Downloads
QuickPulse.Show

Please allow `this` to introduce oneself, hope you guess my type.

QuickPulse.Explains

Write some tests, make QuickPulse read them aloud.

QuickAcid

Drop it in acid. Look for gold. Like alchemy, but reproducible.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 361 7/21/2025
0.1.5 185 7/19/2025
0.1.4 16 7/18/2025
0.1.3 85 7/18/2025
0.1.2 113 7/17/2025
0.1.1 148 7/9/2025
0.1.0 141 7/8/2025