# Zoi v0.17.3 - Table of Contents Zoi is a schema validation library for Elixir, designed to provide a simple and flexible way to define and validate data. ## GUIDES - [Changelog](changelog.md) - [Zoi](readme.md) - Setup - [Quickstart Guide](quickstart_guide.md) - [Recipes](recipes.md) - Integrations - [Rendering forms with Phoenix](rendering_forms_with_phoenix.md) - [Using Zoi to generate OpenAPI specs](using_zoi_to_generate_openapi_specs.md) - [Validating controller parameters](validating_controller_parameters.md) - Utilities - [Converting Keys From Object](converting_keys_from_object.md) - [Generating Schemas from JSON example](generating_schemas_from_json_example.md) - [Localizing Zoi errors with Gettext](localizing_errors_with_gettext.md) ## Modules - Main API - [Zoi](Zoi.md): `Zoi` is a schema validation library for Elixir, designed to provide a simple and flexible way to define and validate data. - [Zoi.ISO](Zoi.ISO.md): This module defines schemas for ISO time, date, and datetime formats, along with transformations to convert them into Elixir's native types. - Schema - [Zoi.Describe](Zoi.Describe.md): `Zoi.describe/1` introspect schemas, finding it's `:description` metadata and type specifications to generate documentation strings. This documentation that can be used in HexDocs or other places where you want to describe the options your schema accepts. - [Zoi.Schema](Zoi.Schema.md): Utilities for traversing and transforming Zoi schemas. - [Zoi.Struct](Zoi.Struct.md): A helper module to define and validate structs using Zoi schemas. This module provides functions to extract `@enforce_keys` and struct fields from a Zoi struct schema. It is particularly useful when you want to create Elixir structs that align with Zoi schemas. - [Zoi.TypeSpec](Zoi.TypeSpec.md): Protocol for generating Elixir type specifications from Zoi schemas. - Integrations - [Zoi.Form](Zoi.Form.md): Helpers for integrating `Zoi` objects with Phoenix (or any `Phoenix.HTML.FormData`) forms. - [Zoi.JSONSchema](Zoi.JSONSchema.md): [JSON Schema](https://json-schema.org/) is a declarative language for annotating and validating JSON document's structure, constraints, and data types. It helps you standardize and define expectations for JSON data. - Internals - [Zoi.Context](Zoi.Context.md): The Context provides the parsing information such as the input data, parsed data and errors. - [Zoi.Type](Zoi.Type.md): Protocol for defining types in Zoi. - Exceptions - [Zoi.Error](Zoi.Error.md): Represents a validation error with detailed information.