# corophage > Algebraic effects for stable Rust corophage lets you define side effects as plain structs, write business logic that yields those effects, and attach handlers separately. Programs are testable, composable, and run on stable Rust with no macros beyond the optional `#[effect]` and `#[effectful]` attributes. - [Source Code](https://github.com/romac/corophage) - [Crate](https://crates.io/crates/corophage) - [API Documentation](https://docs.rs/corophage) For the full documentation, see [https://corophage.rs/llms-full.txt](https://corophage.rs/llms-full.txt). ## Docs - [Getting Started](https://corophage.rs/docs/getting-started/): Install corophage and run your first effectful program. - [Effects](https://corophage.rs/docs/effects/): Define effects — the building blocks of your effectful programs. - [Programs](https://corophage.rs/docs/programs/): Build programs with the Program API for incremental handler attachment. - [Handlers](https://corophage.rs/docs/handlers/): Write sync and async handlers that implement your effects. - [Shared State](https://corophage.rs/docs/state/): Share mutable state across handlers with run_stateful. - [Advanced Usage](https://corophage.rs/docs/advanced/): Borrowed data, borrowed resume types, and other advanced patterns. - [Performance](https://corophage.rs/docs/performance/): Benchmarks and performance characteristics.