A fast and feature-rich JSON and SMILE encoding/decoding library for Clojure.
Cheshire is a Clojure library for fast JSON and SMILE encoding and decoding. It solves the need for high-performance JSON handling in Clojure applications while supporting extended data types like Date, UUID, and sets that aren't natively covered by basic JSON libraries.
Clojure developers who need efficient JSON serialization/deserialization with support for Clojure-specific and Java types, especially those working on web APIs, data pipelines, or performance-sensitive applications.
Developers choose Cheshire for its combination of speed (built on Jackson) and rich feature set, including SMILE support, custom encoders, and seamless handling of Clojure data structures without sacrificing performance.
Clojure JSON and JSON SMILE (binary json format) encoding/decoding
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarked as approximately twice as fast as data.json, leveraging Jackson's optimized core for speed-critical applications.
Natively encodes Clojure symbols, sets, queues, and Java types like Date and UUID, which are not covered by basic JSON libraries.
Supports the SMILE binary JSON format for compact data representation, useful in network-efficient or storage-sensitive scenarios.
Allows defining custom encoders for arbitrary classes while maintaining performance, with helpers for common encoding actions.
Built on Jackson, which can introduce dependency conflicts, increase artifact size, and tie you to Jackson's update cycle and potential issues.
The README admits custom encoders are 'slightly slower' than the fast encoder, so performance may drop for custom types in high-throughput use cases.
Specifically designed for Clojure, making it less suitable for projects using other JVM languages without Clojure interoperability layers.