# forcola v0.3.2 - Table of Contents > Leak-free external process execution: process-group kill on timeout or BEAM death via a precompiled Rust shim ## Pages - [Forcola](readme.md) - Guides - [Getting started](getting_started.md) - [Process groups and cleanup](process_groups.md) - [Adopting Forcola in a wrapper library](adopting_forcola.md) - [Alternatives and tradeoffs](alternatives.md) ## Modules - Execution modes - [Forcola](Forcola.md): Leak-free external process execution. - [Forcola.Daemon](Forcola.Daemon.md): A long-running external server process under a supervision tree. - [Forcola.Duplex](Forcola.Duplex.md): A bidirectional stdin/stdout session with an external process. - [Forcola.Stream](Forcola.Stream.md): Line-by-line output from a shim-supervised process as an `Enumerable`. - Data structures - [Forcola.Result](Forcola.Result.md): What an OS process did: exit status plus captured output. - [Forcola.Stream.Error](Forcola.Stream.Error.md): Raised when a streamed run does not end with a clean zero exit. - Internals - [Forcola.Precompiled](Forcola.Precompiled.md): Downloads and verifies precompiled `forcola_shim` binaries. - [Forcola.Shim](Forcola.Shim.md): Locates and speaks to the `forcola_shim` binary. ## Mix Tasks - [mix compile.forcola_shim](Mix.Tasks.Compile.ForcolaShim.md): Puts a `forcola_shim` binary into `priv/`. - [mix forcola.checksum](Mix.Tasks.Forcola.Checksum.md): Generates the checksum file the hex package ships.