# kiwi_codec v0.1.0 - Table of Contents

> Pure Elixir codec for Kiwi schema binary messages

## Pages

- [KiwiCodec](readme.md)
- [Changelog](changelog.md)

## Modules

- [KiwiCodec](KiwiCodec.md): Pure Elixir codec for Kiwi schema binary messages.
- [KiwiCodec.Compiler](KiwiCodec.Compiler.md): Compiles `.kiwi` schema text into Elixir modules or source files.

- [KiwiCodec.Container](KiwiCodec.Container.md): Helpers for Kiwi chunk containers with an 8-byte magic and little-endian chunk lengths.

- [KiwiCodec.Generator](KiwiCodec.Generator.md): Generates Elixir modules from parsed Kiwi schemas.

- [KiwiCodec.Runtime](KiwiCodec.Runtime.md): Interpreter for parsed Kiwi schemas without generated modules.
- [KiwiCodec.RustlerGenerator](KiwiCodec.RustlerGenerator.md): Generates Rustler decoder code from Kiwi schemas for RustQ manifests.
- [KiwiCodec.Schema](KiwiCodec.Schema.md): Parsed Kiwi schema.

- [KiwiCodec.Schema.Binary](KiwiCodec.Schema.Binary.md): Encoder and decoder for Kiwi's compact binary schema format.

- [KiwiCodec.Schema.Definition](KiwiCodec.Schema.Definition.md): Kiwi enum, struct, or message definition.

- [KiwiCodec.Schema.Field](KiwiCodec.Schema.Field.md): Kiwi schema field or enum member.

- [KiwiCodec.Schema.Parser](KiwiCodec.Schema.Parser.md): Parser for `.kiwi` schema text.

- [KiwiCodec.TransformModule](KiwiCodec.TransformModule.md): Hook behaviour for custom Kiwi encode/decode normalization.

- Exceptions
  - [KiwiCodec.DecodeError](KiwiCodec.DecodeError.md)
  - [KiwiCodec.EncodeError](KiwiCodec.EncodeError.md)

## Mix Tasks

- [mix kiwi.gen](Mix.Tasks.Kiwi.Gen.md): Generates Elixir modules from a `.kiwi` schema.

