https://github.com/web-infra-dev/rslint
🚀 Go Faster. Go Typed
https://github.com/web-infra-dev/rslint
javascript-linter linter rstack tsgo typescript typescript-go typescript-linting
Last synced: about 1 month ago
JSON representation
🚀 Go Faster. Go Typed
- Host: GitHub
- URL: https://github.com/web-infra-dev/rslint
- Owner: web-infra-dev
- License: mit
- Created: 2025-07-14T08:40:40.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-09-19T10:14:42.000Z (about 2 months ago)
- Last Synced: 2025-09-19T12:29:40.288Z (about 2 months ago)
- Topics: javascript-linter, linter, rstack, tsgo, typescript, typescript-go, typescript-linting
- Language: TypeScript
- Homepage: https://rslint.rs
- Size: 110 MB
- Stars: 323
- Watchers: 4
- Forks: 10
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Agents: AGENTS.md
Awesome Lists containing this project
- awesome-rstack - Rslint - square&colorA=564341&colorB=EDED91" alt="npm version" /></a> | (Resources / Rstack)
README

# Rslint
> [!NOTE]
> Think of Rslint as Rust Clippy but for TypeScript — more like a TypeScript extension than an ESLint plugin.
Rslint is a high-performance JavaScript and TypeScript linter written in Go. It offers strong compatibility with the ESLint and TypeScript-ESLint ecosystem, allowing for seamless replacement, and provides lightning-fast linting speeds.
## ✨ Goals
- 🚀 **Lightning Fast**: Built with Go and typescript-go, delivering 20-40x faster linting performance compared to traditional ESLint setups.
- ⚡ **Minimal Configuration**: Typed linting enabled by default with minimal setup required — no complex configuration needed.
- 📦 **Best Effort ESLint Compatible**: Compatible with most ESLint and TypeScript-ESLint configurations, significantly reducing migration costs.
- 🎯 **TypeScript First**: Uses TypeScript Compiler semantics as the single source of truth, ensuring 100% consistency and eliminating edge-case bugs.
- 🛠️ **Project-Level Analysis**: Performs cross-module analysis by default, enabling more powerful semantic analysis than file-level linting.
- 🏢 **Monorepo Ready**: First-class support for large-scale monorepos with TypeScript project references and workspace configurations.
- 📋 **Batteries Included**: Ships with all existing TypeScript-ESLint rules and widely-used ESLint rules out of the box.
- 🔧 **Extensible**: Exposes AST, type information, and global checker data for writing custom rules with complex cross-module analysis.
## ✅ Current Status
> [!NOTE]
> Rslint is currently in an experimental phase but is under active development.
Rslint is a fork of [tsgolint](https://github.com/typescript-eslint/tsgolint), building upon the innovative proof-of-concept work by [@auvred](https://github.com/auvred). We decided to continue development as tsgolint has no current plans for continued development ([reference](https://x.com/bradzacher/status/1943475629376282998)).
## 🚀 Getting Started
See [Guide](https://rslint.rs/guide/).
## 📖 Architecture Overview
- [Architecture Overview](./architecture.md) - Comprehensive system architecture and implementation details
## 🦀 Rstack
Rstack is a unified JavaScript toolchain built around Rspack, with high performance and consistent architecture.
| Name | Description | Version |
| ----------------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Rspack](https://github.com/web-infra-dev/rspack) | Bundler |
|
| [Rsbuild](https://github.com/web-infra-dev/rsbuild) | Build tool |
|
| [Rslib](https://github.com/web-infra-dev/rslib) | Library development tool |
|
| [Rspress](https://github.com/web-infra-dev/rspress) | Static site generator |
|
| [Rsdoctor](https://github.com/web-infra-dev/rsdoctor) | Build analyzer |
|
| [Rstest](https://github.com/web-infra-dev/rstest) | Testing framework |
|
| [Rslint](https://github.com/web-infra-dev/rslint) | Linter |
|
## 🤝 Contribution
Please read the [Contributing Guide](https://github.com/web-infra-dev/rslint/blob/main/CONTRIBUTING.md) and let's build Rslint together.
### Code of Conduct
This repo has adopted the ByteDance Open Source Code of Conduct. Please check [Code of conduct](./CODE_OF_CONDUCT.md) for more details.
## 💬 Community
Come chat with us on [Discord](https://discord.gg/uPSudkun2b)! Rslint team and users are active there, and we're always looking for contributions.
## 🙏 Credits
Rslint has been inspired by several outstanding projects in the community:
- [@auvred](https://github.com/auvred) - The original author of [tsgolint](https://github.com/typescript-eslint/tsgolint), from which Rslint is forked. We are deeply grateful for his pioneering work and innovative approach to TypeScript linting.
- [@JamesHenry](https://github.com/JamesHenry) - The creator of [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint), who has provided valuable guidance and suggestions for Rslint's development.
- [@JoshuaKGoldberg](https://github.com/JoshuaKGoldberg) - For his insightful blog series ["If I Wrote a Linter"](https://www.joshuakgoldberg.com/blog/if-i-wrote-a-linter-part-1-architecture/) which provided valuable architectural insights for modern linter design.
- The [typescript-eslint](https://github.com/typescript-eslint) team - Rslint's configuration design and test cases have been significantly influenced by and adapted from typescript-eslint's excellent implementation.
- The [ESLint](https://github.com/eslint/eslint) team - Rslint builds upon the foundational work of ESLint, the pioneering JavaScript linter that established the standards and patterns for static code analysis in the JavaScript ecosystem.
- The [Rust Clippy](https://github.com/rust-lang/rust-clippy) team - Rslint draws inspiration from Clippy's approach to compiler-integrated linting, bringing similar TypeScript-native analysis to the JavaScript ecosystem.
- The [typescript-go](https://github.com/microsoft/typescript-go) project - Powers Rslint's high-performance TypeScript parsing and semantic analysis capabilities.
## 📖 License
Rslint is [MIT licensed](https://github.com/web-infra-dev/rslint/blob/main/LICENSE).