# hex_port v0.17.0 - Table of Contents HexPort: Hexagonal architecture ports for Elixir. Typed port contracts with async-safe test doubles, dispatch logging, and stateful test handlers. Define boundaries with `defport`, swap implementations for testing without a database. ## Pages - Introduction - [HexPort](readme.md) - [Getting Started](getting-started.md) - Guides - [Testing](testing.md) - [Repo](repo.md) - [Incremental Migration](migration.md) - About - [Changelog](changelog.md) ## Modules - Core - [HexPort.Contract](HexPort.Contract.md): Macro for defining typed port contracts with `defport` declarations. - [HexPort.Dispatch](HexPort.Dispatch.md): Dispatch resolution for HexPort contracts. - [HexPort.Facade](HexPort.Facade.md): Generates a dispatch facade for a `HexPort.Contract`. - Testing - [HexPort.Testing](HexPort.Testing.md): Test helpers for HexPort contracts. - Repo - [HexPort.Repo.Contract](HexPort.Repo.Contract.md): Repo contract for common Ecto Repo operations. - [HexPort.Repo.InMemory](HexPort.Repo.InMemory.md): Stateful in-memory Repo implementation for tests. - [HexPort.Repo.MultiStepper](HexPort.Repo.MultiStepper.md): Steps through an `Ecto.Multi` without a real database transaction. - [HexPort.Repo.Test](HexPort.Repo.Test.md): Stateless test handler for `HexPort.Repo.Contract`.