QuickPulse 0.2.0
dotnet add package QuickPulse --version 0.2.0
NuGet\Install-Package QuickPulse -Version 0.2.0
<PackageReference Include="QuickPulse" Version="0.2.0" />
<PackageVersion Include="QuickPulse" Version="0.2.0" />
<PackageReference Include="QuickPulse" />
paket add QuickPulse --version 0.2.0
#r "nuget: QuickPulse, 0.2.0"
#:package QuickPulse@0.2.0
#addin nuget:?package=QuickPulse&version=0.2.0
#tool nuget:?package=QuickPulse&version=0.2.0
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 | Versions 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. |
-
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.