A simple and flexible Elixir library for validating data structures with an intuitive API.
Skooma is an Elixir library for validating data structures, designed to simplify schema creation and ensure data integrity. It provides a clean API to define schemas for incoming and outgoing data, particularly useful for REST APIs, but applicable throughout an Elixir codebase.
Elixir developers building applications that require robust data validation, such as REST APIs, data processing pipelines, or systems with complex data structures.
Developers choose Skooma for its intuitive API that reduces the complexity of schema creation, its support for all Elixir data types, and its flexibility in handling optional fields, nested structures, and custom validation logic.
Elixir data validation library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Schemas use Elixir's native data structures like maps and lists, making them easy to write and read without complex DSLs, as shown in the basic examples.
Handles optional fields with :not_required, nested and recursive maps via functions, and union types, enabling validation of complex data structures like API payloads.
Allows custom validation functions that return detailed error messages, demonstrated by the built-in max_length validator example for tailored logic.
Returns path-specific error messages (e.g., 'at stuff -> key3 -> key4') when validation fails, helping developers quickly debug nested data issues.
Only includes basic validators for string length and regex, lacking common ones like email or URL validation, which requires custom implementation.
At version 0.2.0, the library may have instability or breaking changes, and the ecosystem is smaller with fewer community contributions.
Does not provide out-of-the-box compatibility with Ecto changesets, forcing developers to bridge validation logic separately for database operations.