New features:
- Type-safe JSON serialisation via
Deriving_Json: new modulesStore_json,Ref_jsonand functorColumn.Jsonin all backends, as alternatives to theMarshal-basedStore,RefandColumn.Marshal. Persisted data is human-readable and stable across OCaml versions. Adds a dependency onjs_of_ocaml(for theDeriving_Jsonruntime only). iterandfoldadded to thePolymorphicinterface;iter_step/fold_stepdeprecated.iter_batchimplemented for the SQLite and DBM backends.
Bug fixes:
- SQLite: keep a persistent database connection instead of open/close per operation.
- PostgreSQL: fix
replace_if_exists, wrapmodify_optin a transaction, fixFunctorial.lengthandFunctorial.fold/Polymorphic.fold. - DBM: replace the double-fork with
Unix.create_process(OCaml 5 compatible).
Security:
- Validate table and store names in all backends to prevent SQL injection.
Other:
- Add a test suite for the three backends and a CI workflow.
This release is fully backward-compatible with 2.0.0 (additive API).