Liking cljdoc? Tell your friends :D

Spindel Documentation

This index organizes the documentation by topic. New to Spindel? Start with Getting Started, then Concepts.

Getting Started

  • Main README — project overview, install, quick start
  • Getting Started — first-spin tutorial: setup, signals, effects, running tests

Core Concepts

  • Concepts — the mental model: spins, signals, checkpoints, effects, the drain queue, caching, glitch-free propagation. Read this before the guides.
  • Effectsawait, track, yield, deferred and mailbox synchronization
  • Incremental — deltaable collections, typed delta algebra, the Interval three-state contract

Guides

  • Combinatorsparallel, race, sleep, timeout, debounce, throttle, accumulate
  • Custom Effects — register your own effects so they participate in spin macro expansion
  • Atoms — fork-safe, runtime-backed atoms
  • Forking — O(1) copy-on-write contexts: fork-context, snapshot-context, restore-snapshot, serialization
  • Pub/Submult, pub, buffers, async-sequence fan-out
  • Distributeddefn-spin-remote, spin-remote, the spin↔channel bridge, distributed-scope integration
  • SCI Integration — sandboxed spin execution via the Small Clojure Interpreter

Internals & Reference

  • Engine — the implementation deep-dive: state shape, deterministic addressing, CPS / trampoline, executors and the drain loop, glitch-free propagation, the overlay backend, memory invariants and GC
  • Engine Formalism — algebraic properties (track as comonad, await as monad, the delta algebra laws), flow-chart diagrams, and a correctness argument per reactive composition
  • API Reference — namespace-by-namespace listing of every public function and macro

Can you improve this documentation?Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close