Fork me on GitHub

I'm evaluating various "spec" libraries for use in production. It's a bit of a sticky situation, since clojure.spec is alpha, clojure.spec2 and malli are pre-alpha. The only "stable" library is Plumatic Schema, but that's also old (though actively maintained).


But, everyone's definition of pre-alpha is different. Alex Miller explicitly says "don't use spec2 in production yet, eta is in the order of months".


What is the definition of pre-alpha for Malli?


we wanted to optimize the whole - currently all non-core modules (generators, providers, transformers, etc) have initial versions and we know how to core should be done to support the needs of the modules. There will be few namespace & function renames (e.g. breaking) after which we’ll put a alpha out. Will be in alpha as long all the relevant features are feature-complete, but I would guess there will be a real release within 1-2 months.


there is for example now m/transform function but it will be split into m/encode and m/decode, like in spec-tools. Didn’t want to start maintaining CHANGELOG for all the things that are in a flux now, but final design starts to emerge, so getting close.


also, there are some big things that need to be decided before release, will write a post &/ poll out of those.


• open or closed maps by default? (open) • support clojure core predicates (`ìnt?`, string?) by default or make keyword type schemas (`:int`, :string, ...)


we’ll push a reitit coercion module of malli soon, so people can start playing (and reporting issues) with it.


Thanks for the update! Looking forward to see what's cooking.