About alint
Why alint exists
Section titled “Why alint exists”Most linters check the code inside files; alint checks the files themselves. The filesystem shape of a repository — which files exist, what they’re called, what’s inside them at the structural level, how they relate to each other — turns out to be where a lot of structural correctness lives, and where existing tooling is patchy. alint covers that surface in one declarative .alint.yml: 60 rule kinds across 13 families, 19 bundled ecosystem rulesets, structured queries (RFC 9535 JSONPath over JSON / YAML / TOML), cross-file relational rules, conditional when: gates on per-run facts, and auto-fix.
When Repolinter was archived in early 2026 it took a piece of the OSS-baseline checking tooling with it; alint’s oss-baseline@v1 ruleset is a strict superset of Repolinter’s default rules for users migrating in. See the Repolinter-alternative landing and the step-by-step migration guide for the full mapping.
Non-goals
Section titled “Non-goals”alint is deliberately not:
- a code / AST linter — use ESLint, Clippy, ruff
- a SAST scanner — use Semgrep, CodeQL
- an IaC scanner — use Checkov, Conftest, tfsec
- a commit-message linter — use commitlint
- a secret scanner — use gitleaks, trufflehog
Scope is the filesystem shape and contents of a repository, not the semantics of the code inside it. For where alint fits in monorepo workflows specifically — including when to reach for Bazel, Cargo, pre-commit, or OpenSSF Scorecard instead — see alint and monorepos.
Project links
Section titled “Project links”- Source: github.com/asamarts/alint
- Crates: crates.io/crates/alint
- Rust API docs: docs.rs/alint, docs.rs/alint-core
- Container: ghcr.io/asamarts/alint
- Homebrew: asamarts/homebrew-alint
License
Section titled “License”alint is dual-licensed under either of:
- Apache License 2.0 (SPDX
Apache-2.0) - MIT License (SPDX
MIT)
at your option. Contributions are dual-licensed the same way unless explicitly stated otherwise.