A fast, extensible Clojure linter focused on style and code shape, inspired by RuboCop.
Splint is a Clojure linter focused on enforcing style guidelines and improving code shape by analyzing source code as text. It helps developers maintain consistent coding standards by warning about violations of the Clojure Style Guide, similar to how RuboCop works for Ruby.
Clojure developers and teams looking for a fast, extensible linter to enforce style consistency and improve code readability in their projects.
Developers choose Splint for its exceptional speed compared to alternatives like Kibit, its extensible design that allows easy rule customization, and its focused approach to style linting without the overhead of macro expansion or lexical analysis.
A Clojure linter focused on style and code shape.
Lints hundreds of files in seconds, with benchmarks showing 223 files in under 6 seconds compared to Kibit's 34 minutes, as demonstrated in the README speed comparison.
Designed for easy modification and extension of linting rules, inspired by RuboCop's philosophy, allowing teams to add custom style checks.
Integrates seamlessly with Clojure CLI, Leiningen, and Babashka, with clear installation examples provided for each build tool.
Specifically targets the Clojure Style Guide for consistent code shape and readability, without the overhead of macro expansion or lexical analysis.
Cannot expand or lint macro-generated code, limiting its effectiveness for projects with complex macro usage, as admitted in the Non-goals section.
Does not perform lexical analysis, so it misses issues like unused variables or incorrect bindings that tools like clj-kondo handle.
Uses incremental, non-semantic versions and explicitly warns against relying on it as a library, with no guarantees on public API stability.
Static analyzer and linter for Clojure code that sparks joy
There's a function for that!
Clojure lint tool
Spectrum is a library for performing static analysis on Clojure code, leveraging clojure.spec annotations to detect type-like errors during compilation. It provides an optional, pragmatic layer of compile-time checking on top of spec, aiming to catch common bugs without requiring full spec coverage. ## Key Features - **Static Analysis** — Analyzes Clojure code at compile time to identify potential spec conform errors. - **Spec-Driven** — Uses existing clojure.spec annotations as a foundation for type-like checking. - **Pragmatic Design** — Prioritizes usability and speed over perfect correctness, aiming for low false positives. - **Incremental Checking** — Supports checking individual vars or forms, enabling flexible integration into workflows. - **Configurable Strictness** — Allows tuning of analysis strictness levels to balance thoroughness and performance. ## Philosophy Spectrum embraces a pragmatic approach, valuing a tool that catches 80% of bugs and is used daily over a theoretically perfect but impractical solution. It converges toward correctness while accepting limitations during development.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.