NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #3971 most downloaded on pub.dev
Acanthis is an easy-to-use validation library for Dart and Flutter.
Last release 9 days ago
28 Sep 2026
Release timing varies
gaps range from 9 days to 4 months
Nearly every release is documented
notes for 30 of 30 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
30 releases · first in 2024
breaking: remove AcanthisParseResult and toOutcome(). parse/parseAsync return raw values; tryParse/tryParseAsync return sealed AcanthisValid/AcanthisI
breaking: remove AcanthisParseResult and toOutcome(). parse/parseAsync return raw values; tryParse/tryParseAsync return sealed AcanthisValid/AcanthisInvalid outcomes. Both outcome branches expose value; invalid values are best-effort output, not validated data.
feat: validate/validateAsync return the first validation message or null, for field validation. Async checks require the asynchronous entry points.
feat: Add typed per-call context, selected-field rules with declared paths and conditional presence, and independent field/object collection policies.
feat: Add atomic batches, nested edits, removal, revision snapshots, issue additions and removals, and dependency-aware reuse to live sessions.
feat: Add async field pending state, debounce, cooperative cancellation, and disposal.
refactor: Reject exact schema export for selected-field predicates.
perf: resolve typed string-list executors once per batch and reduce first-use object-plan setup, retaining dynamic-list and subclass fallbacks.
perf: reduce diagnostic metadata and path copying, avoid exception-based string type rejection, simplify single-check executors, and reduce flat-schema setup and primitive-list parsing overhead while preserving ordered issues and recovery behavior.
feat: extend audited input/output JSON Schema 2020-12 and OpenAPI 3.1 exports with numeric bounds, scalar equality/enumeration, boolean checks, nonempty strings, list lengths, and stable recursive object references. Keep repeated constraints conjunctive and diagnose unaudited semantics explicitly.
test: verify 1,620 runtime/input pairs and successful outputs with independent JSON Schema and OpenAPI validators; add a repeatable export audit runner.
breaking: separate required nullable fields from optional presence; validate defaults for absent/null input consistently across execution modes. Preserve nullable nulls and keep invalid-input recovery unsuccessful.
breaking: partial() now preserves omission, nullability and unknown-key policy; add patch() alias and suppress defaults only for omitted PATCH fields.
feat: add explicit strip/preserve/reject unknown-key policies and structural input/output exports for JSON Schema 2020-12 and OpenAPI 3.1, with diagnostics for unsupported behavior.
fix: preserve defaulted field values in live recovery without repeating transformations; validate pipeline defaults on their output side.
fix: export ordinary OpenAPI unions using anyOf so inputs matching multiple branches remain valid.
docs: record native issue compatibility, an executable presence/default/export audit, and selected-field rule design before changing live scheduling.
test: add reproducible differential validation and lifecycle benchmarks for JIT/AOT, invalid inputs, large unions, transformed outputs, live updates, controlled async callbacks, and separate allocation/CPU profiling.
feat: add mockSeeded with a documented supported subset, validation guarantees, resource limits and explained failures; bound the legacy list mock loop.
fix: align sync/async recovery output, nested stripping, absent optional fields, and container sharing. Type-failure fallback mocking now uses a fixed seed for reproducible recovery.
feat: emit ordered structured issues directly, retaining duplicate failures, typed data paths, constraint parameters, and nested union branch diagnostics. Add field/tree/JSON formatters and presentation-time message resolvers; keep errors as a lossy compatibility projection.
fix: finalize the unreleased 2.0 path contract (/account/email, without a trailing check name), preserve diagnostics across async composition and live updates, and omit input values from built-in coercion messages. Missing dependencies use a stable dependency code.
perf: reuse input maps and typed lists when validation leaves them unchanged. Parsed values can now share identity with their input; transformations, coercion, defaults, and unknown-key stripping retain their output handling.
feat: add watch and watchAsync extensions on object schemas for synchronous and asynchronous live validation sessions. Synchronous sessions expose explain(field); update deltas report executed fields and whether full validation ran.
feat: add validate/validateAsync, typed validation outcomes, and structured issues with paths and JSON pointers.
perf: specialize eligible object schemas with inline primitive checks and flattened nested validation.
fix: execute object and list transformations once through async entry points, propagate nested stripped output without mutating input, and report invalid map/list inputs through non-throwing APIs.
breaking: require Dart 3.13 or later. Parsed maps/lists may share input identity; copy the returned container explicitly when independent mutable output is required. Unknown properties are stripped at every object level unless that level uses passthrough.
chore: update dependencies to ensure compatibility with the latest versions of Dart and Flutter, improving overall stability and performance of the library.
fix: resolve issues with asynchronous validation in sessions, ensuring that all asynchronous checks are properly handled and that validation results are accurate and reliable.
One column per month.
feat: add coercion support for all types, allowing for automatic type conversion when parsing values. This feature enables more flexible and user-frie
fix: Prevent nullable to be treated always like a pure type and use type purity to determine if the schema is pure or not, allowing for more complex s
perf: improve general performances
feat: add AcanthisType#mock to generate mocks values from the schema.
AcanthisType#mock to generate mocks values from the schema.Full Changelog : 1.4.5...1.5.1
Full Changelog: 1.4.5...1.5.1
AcanthisInteger and AcanthisDouble to represent integer and double types separately.template type to create template literal schemas with placeholders.feat: add Open API schema generation for all types.
feat: add AcanthisType#defaultValue to get the default value of the schema.
AcanthisType#defaultValue to get the default value of the schema.meta dependency is now less strict.Full Changelog : 1.4.1...1.4.5
Full Changelog: 1.4.1...1.4.5
CustomCauseCheck to allow for custom checks that return a cause message on failure based on the input value.feat: pipes are now acanthis type and can be used to validate more complex structures.
perf: improve performances again.
perf: improved overall performances
a way to circumvent limitation on custom enum implementations when using string().enumurated() by @Hanibachi in #12
Full Changelog: 1.2.3...1.4.1
literal values in objects, unions, tuples, listfeat: add support for class schemas with classSchema ()
classSchema<I, T>()instance<T>()union<T>() and variant<T>()fix(#14): change list parse values to dynamic values #15 by francescovallone
fix: wrong error messages for missing keys when parsing maps #13 by jesus-gueyp
feat: add AcanthisString#contained to check if the string is one of the contained values.
Full Changelog : 1.2.1...1.2.3
Full Changelog: 1.2.1...1.2.3
refactor: add possiblity to use both String and RegExp for AcanthisString#pattern validator.
AcanthisString#pattern validator.AcanthisType#elementType to get the type of the schema.Full Changelog : 1.2.0...1.2.1
Full Changelog: 1.2.0...1.2.1
feat( #9 ): add json schema specifications and tuples by @francescovallone in #10
Full Changelog: 1.1.0...1.2.0
toJsonSchema method to generate JSON Schema from Acanthis Types. #10 by francescovallonetuple validator to create a tuple schema. #10 by francescovalloneRefactor codebase to be immutable by @dickermoshe in #6
Full Changelog: 1.0.1...1.1.0
AcanthisMap.extend method now does not override existing key-value pairs. #7 by francescovalloneAdd differsFromNow to the AcanthisDate validator.
differsFromNow to the AcanthisDate validator.double and between to the AcanthisNumber validator.time, url, card and hexColor to the AcanthisString validator.Full Changelog : 1.0.0...1.0.1
Full Changelog: 1.0.0...1.0.1
Full Changelog : 0.1.3...1.0.0
Full Changelog: 0.1.3...1.0.0
partial validator to object validator.customCheck to refine in all validators.refineAsync to all validators.pipe and AcanthisPipeline to allow for more complex validation and transformation processes.Full Changelog : 0.1.2...0.1.3
Full Changelog: 0.1.2...0.1.3
optionals function to the object validator.optionals in the object validator.Add the addFieldDependency function to the object validator.
addFieldDependency function to the object validator.addFieldDependency in the object validator.Operations section from the documentation.The function jsonObject has been renamed as object.
jsonObject has been renamed as object.AcanthisParseResult.Add transformation functions for all the validators except nullable, boolean and union.
nullable validator.union validator.boolean validator.nullable, boolean and union.string().email() validator that will now use the email_validator package.- Initial version.
Your coding agent can read these notes before it upgrades. Set up the MCP server →