Guides

Tutorials, how-tos, and in-depth feature guides for Turmeric

Audio

  • scscm to SuperCollider -- Compile scscm, a Scheme-like syntax for SuperCollider, to sclang with tur-scscm, then run it on scsynth or hypercollider's hcsynth -- live or rendered to a WAV
  • Signal Processing with Typed Signal Functions -- Oscillators (LFO, band-limited, FM and PM), one-pole, biquad, state-variable and ladder filters, delays and combs, colored noise, sample buffers and scanning with nearest/linear/cubic/sinc interpolation, MIDI note/Hz conversion and sequencing, Scala .scl/.kbm tunings, shapers, ADSR envelopes, and SF-pipeline composition -- a typed Signal/SF abstraction for building audio DSP graphs

Data

  • Probabilistic Data Structures -- Bloom and Cuckoo filters, HyperLogLog, Count-Min Sketch, Top-K and t-digest -- answer "seen it?", "how many?", "how often?" and "what's the p99?" over a stream in fixed memory, with merge for sharded data
  • Valkey and Redis Client -- Connect, run commands, walk reply trees, and subscribe to pub/sub -- a linear Client handle over hiredis, speaking the RESP protocol

Distributed Systems

  • Conflict-Free Replicated Data Types -- Convergent data types for offline-first and peer-to-peer state -- counters, sets, registers, maps, and sequences that merge without coordination

Graphics

  • Modern OpenGL with GLFW and GLAD -- OpenGL 3.3 Core bindings -- window creation, vertex arrays, buffers, shaders, textures, draw calls, and input, with linear GPU handles

Graphics and Games

  • Raylib Graphics and Input -- Windows, shapes, text, textures, audio, camera, and input -- the full small-game stack with raylib 5.5

Math

  • Vector and Matrix Math -- 2D/3D vectors, 4x4 transform matrices, quaternions with slerp, and scalar helpers -- pure Turmeric, no C deps

Networking

  • Scalability Protocols with nng -- Request/reply, pub/sub, pipeline, pair, bus, and survey messaging over inproc, ipc, tcp, and ws (WebSocket, browser peers included) -- blocking calls over a linear socket handle, poll fds for event loops, completion-based async (nng/aio), and per-conversation contexts (nng/ctx)

Networking and Web

  • String Templating Engine -- ERB/EJS-style string templating -- interpolation, conditionals, loops, and local bindings for server-side HTML generation

Parsing

  • HTML Parsing -- WHATWG HTML parsing with tur-html -- documents and fragments into the shared dom-core tree, the tree's shape, the depth cap, tokenizer-level events, and why parsing is not sanitizing
  • XML Parsing (SAX and DOM) -- Streaming SAX and in-memory DOM parsing of XML with tur-xml -- choosing between them, the shared node API, push parsing, namespaces, errors, and the safe defaults for untrusted input

Security

  • Secrets and Crypto Hygiene -- Linear key material with tur-secret -- a wipe the optimizer cannot delete, an OS CSPRNG, constant-time comparison, and a Secret type whose destructor the compiler enforces

Serialization

  • MessagePack Binary Serialization -- Typeclass-driven binary serialization -- encode/decode/derive macros for structs, opaques, and sums, with an accumulating validator for untrusted input

Terminal and TUI

  • ANSI Terminal Control -- Colors, cursor movement, raw-mode input, box drawing, and inline images -- a lightweight ncurses alternative