{"id":13681945,"url":"https://github.com/taoensso/nippy","last_synced_at":"2026-06-02T12:00:43.256Z","repository":{"id":3774801,"uuid":"4851875","full_name":"taoensso/nippy","owner":"taoensso","description":"Fast serialization library for Clojure","archived":false,"fork":false,"pushed_at":"2026-04-21T04:46:00.000Z","size":1661,"stargazers_count":1104,"open_issues_count":8,"forks_count":63,"subscribers_count":29,"default_branch":"master","last_synced_at":"2026-05-29T00:52:00.665Z","etag":null,"topics":["clojure","compression","edn","encryption","epl","serialization","taoensso"],"latest_commit_sha":null,"homepage":"https://www.taoensso.com/nippy","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taoensso.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":"FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"ptaoussanis","custom":"https://www.taoensso.com/clojure/backers"}},"created_at":"2012-07-01T17:13:32.000Z","updated_at":"2026-05-24T17:46:04.000Z","dependencies_parsed_at":"2023-07-05T20:16:53.792Z","dependency_job_id":"3477a16a-0b97-482f-9df3-72e08eb174a3","html_url":"https://github.com/taoensso/nippy","commit_stats":{"total_commits":592,"total_committers":13,"mean_commits":45.53846153846154,"dds":"0.10979729729729726","last_synced_commit":"39d88dfbd3cf289a5e6052fca8eeccb8de7ffef4"},"previous_names":["taoensso/nippy","ptaoussanis/nippy"],"tags_count":115,"template":false,"template_full_name":null,"purl":"pkg:github/taoensso/nippy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taoensso%2Fnippy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taoensso%2Fnippy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taoensso%2Fnippy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taoensso%2Fnippy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taoensso","download_url":"https://codeload.github.com/taoensso/nippy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taoensso%2Fnippy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33736565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clojure","compression","edn","encryption","epl","serialization","taoensso"],"created_at":"2024-08-02T13:01:38.174Z","updated_at":"2026-06-02T12:00:43.248Z","avatar_url":"https://github.com/taoensso.png","language":"Clojure","funding_links":["https://github.com/sponsors/ptaoussanis","https://www.taoensso.com/clojure/backers"],"categories":["Clojure","\u003ca name=\"Clojure\"\u003e\u003c/a\u003eClojure"],"sub_categories":[],"readme":"\u003ca href=\"https://www.taoensso.com/clojure\" title=\"More stuff by @ptaoussanis at www.taoensso.com\"\u003e\u003cimg src=\"https://www.taoensso.com/open-source.png\" alt=\"Taoensso open source\" width=\"340\"/\u003e\u003c/a\u003e  \n[**API**][cljdoc] | [**Wiki**][GitHub wiki] | [Support][GitHub issues] | Latest releases: [v3.6.2](../../releases/tag/v3.6.2) (2026-04-09) or [v3.7.0-RC1](../../releases/tag/v3.7.0-RC1) (2026-06-02)\n\n[![Clj tests][Clj tests SVG]][Clj tests URL]\n[![Graal tests][Graal tests SVG]][Graal tests URL]\n\n# Nippy\n\n### Fast serialization library for Clojure\n\nClojure's rich data types are awesome. And its [reader](https://clojure.org/reference/reader) allows you to take your data just about anywhere. But the reader can be painfully slow when you've got a lot of data to crunch (like when you're serializing to a database).\n\nNippy is a mature, high-performance **drop-in alternative to the reader**.\n\nIt is used at scale by [Carmine](https://www.taoensso.com/carmine), [Faraday](https://www.taoensso.com/faraday), [PigPen](https://github.com/Netflix/PigPen), [Onyx](https://github.com/onyx-platform/onyx), [XTDB](https://github.com/xtdb/xtdb), [Datalevin](https://github.com/juji-io/datalevin), and others.\n\n## Why Nippy?\n\n- Small, simple **pure-Clojure** library\n- **Terrific performance**: the [best](#performance) for Clojure that I'm aware of\n- Comprehensive support for [all standard data types](../../wiki/1-Getting-started#deserializing)\n- Easily extendable to [custom data types](../../wiki/1-Getting-started#custom-types)\n- **Robust test suite** incl. coverage of every supported type\n- **Mature** and widely used in production for 12+ years\n- Optional auto fallback to [Java Serializable](https://taoensso.github.io/nippy/taoensso.nippy.html#var-*freeze-serializable-allowlist*) for [safe](https://cljdoc.org/d/com.taoensso/nippy/CURRENT/api/taoensso.nippy#*freeze-serializable-allowlist*) types\n- Optional auto fallback to Clojure Reader (including tagged literals)\n- Optional smart **compression** with [LZ4](https://code.google.com/p/lz4/) or [Zstandard](https://facebook.github.io/zstd/)\n- Optional [encryption](../../wiki/1-Getting-started#encryption) with AES128\n- [Tools](https://taoensso.github.io/nippy/taoensso.nippy.tools.html) for easy + robust **integration into 3rd-party libraries**, etc.\n- Powerful [thaw transducer](https://taoensso.github.io/nippy/taoensso.nippy.html#var-*thaw-xform*) for flexible data inspection and transformation\n\n## Quick example\n\nNippy's super easy to use:\n\n```clojure\n(require '[taoensso.nippy :as nippy])\n\n;; Freeze any Clojure value\n(nippy/freeze \u003cmy-value\u003e) ; =\u003e Serialized byte[]\n\n;; Thaw the byte[] to get back the original value:\n(nippy/thaw (nippy/freeze \u003cmy-value\u003e)) ; =\u003e \u003cmy-value\u003e\n```\n\nSee the [wiki](https://github.com/taoensso/nippy/wiki/1-Getting-started#deserializing) for more.\n\n## Operational considerations\n\n### Data longevity\n\nNippy is widely used to store **long-lived** data and promises (as always) that **data serialized today should be readable by all future versions of Nippy**.\n\nBut please note that the **converse is not generally true**:\n\n- Nippy `vX` **should** be able to read all data from Nippy `vY\u003c=X` (backwards compatibility)\n- Nippy `vX` **may/not** be able to read all data from Nippy `vY\u003eX` (forwards compatibility)\n\n### Rolling updates and rollback\n\nFrom time to time, Nippy may introduce:\n\n- Support for serializing **new types**\n- Optimizations to the serialization of **pre-existing types**\n\nTo help ease **rolling updates** and to better support **rollback**, Nippy (since version v3.4) will always introduce such changes over **two version releases**:\n\n- Release 1: to add **read support** for the new types\n- Release 2: to add **write support** for the new types\n\nStarting from v3.4, Nippy's release notes will **always clearly indicate** if a particular update sequence is recommended.\n\n### Stability of byte output\n\nIt has **never been an objective** of Nippy to offer **predictable byte output**, and I'd generally **recommend against** depending on specific byte output.\n\nHowever, I know that a small minority of users *do* have specialized needs in this area.\n\nSo starting with Nippy v3.4, Nippy's release notes will **always clearly indicate** if any changes to byte output are expected.\n\n## Performance\n\nNippy is fast! Latest [benchmark](../../blob/master/test/taoensso/nippy_benchmarks.clj) results:\n\n![benchmarks-png](../../raw/master/benchmarks.png)\n\nPRs welcome to include other alternatives in the bench suite!\n\n## Documentation\n\n- [Wiki][GitHub wiki] (getting started, usage, etc.)\n- API reference via [cljdoc][cljdoc]\n\n## Funding\n\nYou can [help support][sponsor] continued work on this project and [others][my work], thank you!! 🙏\n\n## License\n\nCopyright \u0026copy; 2012-2025 [Peter Taoussanis][].  \nLicensed under [EPL 1.0](LICENSE.txt) (same as Clojure).\n\n\u003c!-- Common --\u003e\n\n[GitHub releases]: ../../releases\n[GitHub issues]:   ../../issues\n[GitHub wiki]:     ../../wiki\n\n[Peter Taoussanis]: https://www.taoensso.com\n[sponsor]:          https://www.taoensso.com/sponsor\n[my work]:          https://www.taoensso.com/clojure-libraries\n\n\u003c!-- Project --\u003e\n\n[cljdoc]: https://cljdoc.org/d/com.taoensso/nippy/CURRENT/api/taoensso.nippy\n\n[Clojars SVG]: https://img.shields.io/clojars/v/com.taoensso/nippy.svg\n[Clojars URL]: https://clojars.org/com.taoensso/nippy\n\n[Clj tests SVG]:  https://github.com/taoensso/nippy/actions/workflows/clj-tests.yml/badge.svg\n[Clj tests URL]:  https://github.com/taoensso/nippy/actions/workflows/clj-tests.yml\n[Graal tests SVG]: https://github.com/taoensso/nippy/actions/workflows/graal-tests.yml/badge.svg\n[Graal tests URL]: https://github.com/taoensso/nippy/actions/workflows/graal-tests.yml\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaoensso%2Fnippy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaoensso%2Fnippy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaoensso%2Fnippy/lists"}