Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Clojure
  3. splint

splint

MPL-2.0Clojurev1.24.0

A fast, extensible Clojure linter focused on style and code shape, inspired by RuboCop.

Visit WebsiteGitHubGitHub
141 stars5 forks0 contributors

What is splint?

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.

Target Audience

Clojure developers and teams looking for a fast, extensible linter to enforce style consistency and improve code readability in their projects.

Value Proposition

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.

Overview

A Clojure linter focused on style and code shape.

Use Cases

Best For

  • Enforcing Clojure Style Guide conventions in large codebases
  • Teams needing a fast linter to integrate into CI/CD pipelines
  • Developers who want an extensible linter to add custom style rules
  • Projects using Clojure CLI, Leiningen, or Babashka build tools
  • Maintaining consistent code shape and readability across Clojure files
  • Replacing slower linters like Kibit for style-focused analysis

Not Ideal For

  • Projects requiring macro expansion analysis for linting (e.g., using Eastwood for macro-heavy code)
  • Teams needing advanced lexical analysis like unused variable detection or code intent
  • Infrastructure setups that depend on semantic versioning and stable public APIs

Pros & Cons

Pros

Blazing Fast Performance

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.

Extensible Rule System

Designed for easy modification and extension of linting rules, inspired by RuboCop's philosophy, allowing teams to add custom style checks.

Multi-Tool Compatibility

Integrates seamlessly with Clojure CLI, Leiningen, and Babashka, with clear installation examples provided for each build tool.

Style Guide Focus

Specifically targets the Clojure Style Guide for consistent code shape and readability, without the overhead of macro expansion or lexical analysis.

Cons

No Macro Analysis

Cannot expand or lint macro-generated code, limiting its effectiveness for projects with complex macro usage, as admitted in the Non-goals section.

Limited Lexical Insights

Does not perform lexical analysis, so it misses issues like unused variables or incorrect bindings that tools like clj-kondo handle.

Unstable API and Versioning

Uses incremental, non-semantic versions and explicitly warns against relying on it as a library, with no guarantees on public API stability.

Frequently Asked Questions

Quick Stats

Stars141
Forks5
Contributors0
Open Issues11
Last commit1 month ago
CreatedSince 2022

Tags

#developer-tools#linter#babashka#code-style#leiningen#clojure#static-analysis

Built With

C
Clojure

Links & Resources

Website

Included in

Clojure2.8k
Auto-fetched 17 hours ago

Related Projects

clj-kondoclj-kondo

Static analyzer and linter for Clojure code that sparks joy

Stars1,848
Forks305
Last commit1 day ago
kibitkibit

There's a function for that!

Stars1,754
Forks128
Last commit2 years ago
eastwoodeastwood

Clojure lint tool

Stars1,083
Forks64
Last commit2 years ago
spectrumspectrum

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.

Stars605
Forks18
Last commit5 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