Specter is a powerful Clojure (and ClojureScript) library that revolutionizes navigation and manipulation of deeply nested and recursive data structures through a flexible, high-performance API beyond what vanilla Clojure offers. Specter has an extremely simple core, just a single abstraction called "navigator". Queries and transforms are done by composing navigators into a "path" precisely targeting what you want to retrieve or change. Navigators can be composed with any other navigators, allowing sophisticated manipulations to be expressed very concisely. In addition, Specter has performance rivaling hand-optimized code (see this benchmark). Clojure's only comparable built-in operations are get-in and update-in, and the Specter equivalents are 30% and 85% faster, respectively (while being just as concise). Under the hood, Specter uses advanced dynamic techniques to strip away the overhead of composition.

Features

  • Advanced path-based navigation to deeply nested data
  • Supports querying, transformation, and extraction of nested/recursive structures
  • Elegant API allowing complex edits—e.g., filter, sort, reverse in nested containers—concise and expressive
  • Works with both Clojure and ClojureScript data structures
  • Significant performance advantages over manual nested manipulation
  • Has tutorials and motivational guides that showcase its concepts and usage

Project Samples

Project Activity

See All Activity >

Categories

Libraries

License

Apache License V2.0

Follow Specter

Specter Web Site

Other Useful Business Software
Earn up to 15% annual interest with Nexo. Icon
Earn up to 15% annual interest with Nexo.

Let your crypto work for you

Put idle assets to work with competitive interest rates, borrow without selling, and trade with precision. All in one platform. Geographic restrictions, eligibility, and terms apply.
Get started with Nexo.
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Specter!

Additional Project Details

Registered

2025-08-19