An optional type system for Clojure that provides static type checking as a library.
core.typed is an optional type system for Clojure that provides static type checking as a library. It allows developers to add type annotations to their Clojure code and catch type errors at compile time, improving code reliability and maintainability in a dynamically-typed language.
Clojure developers who want to introduce type safety into their codebases, teams looking to reduce runtime errors, and projects that require higher code reliability without abandoning Clojure's dynamic nature.
Developers choose core.typed because it offers gradual typing—allowing incremental adoption without rewriting existing code—and integrates seamlessly as a library, providing the benefits of static analysis while preserving Clojure's flexibility and expressiveness.
An optional type system for Clojure
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows adding type annotations incrementally without rewriting existing code, making it ideal for introducing type safety to legacy Clojure projects.
Catches type errors at compile time through modules like checker.jvm, reducing runtime bugs and improving code reliability as highlighted in the README.
Uses separate modules for development (checker.jvm) and production (runtime.jvm), minimizing runtime overhead in deployed applications.
Includes pre-written type annotations for libraries like core.async, easing integration with popular Clojure ecosystems without manual annotation.
Core.typed is explicitly deprecated as of Clojure 1.11, with no further development; users must migrate to typedclojure for newer Clojure versions.
Only supports Clojure up to 1.10, making it incompatible with projects that have upgraded to more recent releases, as stated in the README.
The analyzer.js and checker.js modules are marked as unreleased, so it cannot be used for type checking in ClojureScript environments, limiting its utility for full-stack projects.