Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. Cheshire

Cheshire

MITClojure

A fast and feature-rich JSON and SMILE encoding/decoding library for Clojure.

Visit WebsiteGitHubGitHub
1.6k stars154 forks0 contributors

What is Cheshire?

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.

Target Audience

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.

Value Proposition

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.

Overview

Clojure JSON and JSON SMILE (binary json format) encoding/decoding

Use Cases

Best For

  • High-performance JSON serialization in Clojure web services
  • Encoding Clojure data structures with Date, UUID, or Set types to JSON
  • Working with the binary SMILE format for compact data exchange
  • Adding custom encoding logic for specific Java or Clojure classes
  • Streaming JSON encoding/decoding to handle large datasets efficiently
  • Parsing JSON with lazy sequences to reduce memory overhead

Not Ideal For

  • Projects that require JSON schema validation or other advanced JSON standards beyond basic encoding/decoding
  • Teams in mixed JVM environments aiming to minimize Jackson dependencies due to conflicts or licensing
  • Applications that only handle standard JSON types and don't use Clojure-specific extensions like sets or symbols

Pros & Cons

Pros

High Performance Encoding

Benchmarked as approximately twice as fast as data.json, leveraging Jackson's optimized core for speed-critical applications.

Extended Clojure Type Support

Natively encodes Clojure symbols, sets, queues, and Java types like Date and UUID, which are not covered by basic JSON libraries.

SMILE Binary Format

Supports the SMILE binary JSON format for compact data representation, useful in network-efficient or storage-sensitive scenarios.

Custom Encoder Flexibility

Allows defining custom encoders for arbitrary classes while maintaining performance, with helpers for common encoding actions.

Cons

Jackson Dependency Burden

Built on Jackson, which can introduce dependency conflicts, increase artifact size, and tie you to Jackson's update cycle and potential issues.

Custom Encoding Speed Penalty

The README admits custom encoders are 'slightly slower' than the fast encoder, so performance may drop for custom types in high-throughput use cases.

Clojure-Only Focus

Specifically designed for Clojure, making it less suitable for projects using other JVM languages without Clojure interoperability layers.

Frequently Asked Questions

Quick Stats

Stars1,556
Forks154
Contributors0
Open Issues45
Last commit4 months ago
CreatedSince 2011

Tags

#data-serialization#jackson#clojure-library#json-encoding#clojure#json-parsing#performance

Built With

C
Clojure
J
Jackson

Links & Resources

Website

Included in

Microservices14.2kClojure2.8k
Auto-fetched 18 hours ago

Related Projects

FastjsonFastjson

FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.

Stars25,611
Forks6,405
Last commit2 years ago
JacksonJackson

Main Portal page for the Jackson project

Stars9,775
Forks1,220
Last commit7 days ago
KryoKryo

Java binary serialization and cloning: fast, efficient, automatic

Stars6,535
Forks841
Last commit4 days ago
FfjsonFfjson

faster JSON serialization for Go

Stars2,994
Forks235
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub