A high-performance, data-driven schema specification library for Clojure and ClojureScript.
Malli is a high-performance, data-driven schema specification library for Clojure and ClojureScript. It provides runtime validation, transformation, and generation of data structures, solving the need for dynamic, first-class data models in multi-tenant systems. Unlike traditional schema libraries, Malli treats schemas as plain data that can be edited, persisted, and transmitted at runtime.
Clojure and ClojureScript developers building dynamic systems where data models need to drive runtime transformations, forms, and processes. It is particularly useful for projects requiring schema validation, data coercion, or integration with tools like JSON Schema or Swagger.
Developers choose Malli for its blend of performance, flexibility, and practicality. It offers faster validation than alternatives, supports multiple syntaxes, and enables runtime schema manipulation. Its data-driven design allows schemas to be serialized, stored, and shared, making it ideal for systems where data models evolve dynamically.
High-performance data-driven data specification library for Clojure/Script.
Schemas are plain data, enabling runtime editing, persistence, and transmission across systems, which is ideal for dynamic multi-tenant applications.
Benchmarks show significant speed improvements over alternatives like Clojure Spec, making it suitable for performance-critical validation tasks.
Built-in transformers for JSON, strings, and custom coercions allow seamless two-way value transformation, simplifying data processing workflows.
Schemas can be converted to JSON Schema, Swagger2, and visualized with DOT and PlantUML, aiding in API documentation and design.
Integrates with clj-kondo and Typed Clojure for static and dynamic function checking, enhancing code quality and developer experience.
Multiple syntaxes (vector, map, lite) and advanced features like multi-schemas and recursive definitions can be overwhelming for newcomers.
Despite being well-matured, the library is marked as alpha, which may lead to breaking changes and deter production use in conservative environments.
Only applicable to Clojure and ClojureScript projects, making it unsuitable for teams using other JVM languages or cross-platform tools.
For basic validation needs, Malli's extensive feature set adds unnecessary complexity compared to lighter alternatives like core predicates or Schema.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.