# Slither v0.1.0 - Table of Contents Low-level BEAM↔Python concurrency substrate. ETS-backed shared state with Python views, batched fan-out with real backpressure, and stage composition over BEAM + Python steps. Built on SnakeBridge/Snakepit. ## Pages - Introduction - [README](readme.md) - Guides - [Getting Started](getting-started.md) - [Architecture](architecture.md) - [Store Guide](store.md) - [Dispatch Guide](dispatch.md) - [Stage Guide](stages.md) - [Pipe Guide](pipe.md) - [Operations And Troubleshooting](operations.md) - Examples - [Slither Examples: Why Process Isolation Beats Free-Threaded Python](examples.md) - About - [Changelog](changelog.md) - [LICENSE](license.md) ## Modules - [Slither](Slither.md): Low-level BEAM↔Python concurrency substrate. - [Slither.Bridge](Slither.Bridge.md): Tool registration helpers for exposing Elixir functions to Python via SnakeBridge's CallbackRegistry. - [Slither.Bridge.ViewRegistry](Slither.Bridge.ViewRegistry.md): ETS-backed registry mapping session IDs to registered view callback IDs. - [Slither.Context](Slither.Context.md): Run context passed through every stage in a Slither pipeline. - [Slither.Dispatch](Slither.Dispatch.md): Batched fan-out to Python pools with real backpressure. - [Slither.Dispatch.Executor](Slither.Dispatch.Executor.md): Behaviour for executing a batch of items against an external runtime. - [Slither.Dispatch.Executors.SnakeBridge](Slither.Dispatch.Executors.SnakeBridge.md): Executor that sends batches via SnakeBridge universal FFI calls. - [Slither.Dispatch.Executors.Snakepit](Slither.Dispatch.Executors.Snakepit.md): Executor that sends batches via Snakepit tool/adapter commands. - [Slither.Dispatch.Runner](Slither.Dispatch.Runner.md): Internal engine that executes batches with bounded concurrency. - [Slither.Dispatch.Strategies.FixedBatch](Slither.Dispatch.Strategies.FixedBatch.md): Split items into fixed-size chunks. - [Slither.Dispatch.Strategies.KeyPartition](Slither.Dispatch.Strategies.KeyPartition.md): Partition items by a key function, one batch per unique key. Useful when items with the same key must be processed together. - [Slither.Dispatch.Strategies.WeightedBatch](Slither.Dispatch.Strategies.WeightedBatch.md): Batch items by a weight function, splitting when cumulative weight exceeds a threshold. Useful for token-count or byte-size batching. - [Slither.Dispatch.Strategy](Slither.Dispatch.Strategy.md): Behaviour for pluggable batching strategies. - [Slither.Examples.Baseline](Slither.Examples.Baseline.md): Runs pure-Python threaded baseline equivalents for Slither examples. - [Slither.Examples.BatchStats.StatsDemo](Slither.Examples.BatchStats.StatsDemo.md): Demonstrates Dispatch with all three batching strategies, streaming, and fault isolation via per-worker process boundaries. - [Slither.Examples.DataEtl.EtlPipe](Slither.Examples.DataEtl.EtlPipe.md): ETL pipeline: prepare -> validate -> transform -> route. - [Slither.Examples.DataEtl.SchemaStore](Slither.Examples.DataEtl.SchemaStore.md): Hot-reloadable schema store for data validation. - [Slither.Examples.ImagePipeline.ThumbnailDemo](Slither.Examples.ImagePipeline.ThumbnailDemo.md): Demonstrates why process isolation beats free-threaded Python for image work. - [Slither.Examples.MlScoring.FeatureStore](Slither.Examples.MlScoring.FeatureStore.md): Write-through feature cache for the ML scoring pipeline example. - [Slither.Examples.MlScoring.ScoringPipe](Slither.Examples.MlScoring.ScoringPipe.md): ML scoring pipeline: enrich -> featurize -> predict -> route by confidence. - [Slither.Examples.TextAnalysis.StopwordStore](Slither.Examples.TextAnalysis.StopwordStore.md): ETS-backed stopword list for the text analysis pipeline example. - [Slither.Examples.TextAnalysis.TextPipe](Slither.Examples.TextAnalysis.TextPipe.md): Text analysis pipeline demonstrating why process isolation beats free-threaded Python. - [Slither.Item](Slither.Item.md): Work envelope carrying a payload through Slither pipelines. - [Slither.Pipe](Slither.Pipe.md): Compose BEAM and Python stages into a supervised pipeline. - [Slither.Pipe.Builder](Slither.Pipe.Builder.md): DSL macros for defining Slither pipes. - [Slither.Pipe.Definition](Slither.Pipe.Definition.md): Normalized, compiled representation of a pipe definition. - [Slither.Pipe.Runner](Slither.Pipe.Runner.md): Executes a pipe definition against input data. - [Slither.Pipe.Supervisor](Slither.Pipe.Supervisor.md): DynamicSupervisor for long-lived pipe topologies. - [Slither.Stage](Slither.Stage.md): Behaviour for a single processing step in a Slither pipeline. - [Slither.Stage.Beam](Slither.Stage.Beam.md): Stage that runs an Elixir function. - [Slither.Stage.Python](Slither.Stage.Python.md): Stage that dispatches batches to Python via `Slither.Dispatch`. - [Slither.Stage.Router](Slither.Stage.Router.md): Stage that routes items to named outputs based on predicates. - [Slither.Store](Slither.Store.md): Behaviour for ETS-backed shared state with Python-accessible views. - [Slither.Store.Pointer](Slither.Store.Pointer.md): Indirection layer for hot-swap reload of ETS tables. - [Slither.Store.Server](Slither.Store.Server.md): GenServer owning ETS tables for a Store implementation. - [Slither.Store.Supervisor](Slither.Store.Supervisor.md): Supervisor for all configured Store processes. - [Slither.Telemetry](Slither.Telemetry.md): Telemetry event definitions and span helpers for Slither. - Exceptions - [Slither.DispatchError](Slither.DispatchError.md): Raised when a dispatch batch fails and the error policy is `:halt`. - [Slither.Error](Slither.Error.md): Error types for Slither operations. - [Slither.PipeError](Slither.PipeError.md): Raised when a pipe run encounters an unrecoverable failure. ## Mix Tasks - [mix slither.example](Mix.Tasks.Slither.Example.md): Run Slither examples showing why process isolation beats free-threaded Python.