{"id":30434514,"url":"https://github.com/web-infra-dev/rslint","last_synced_at":"2025-09-24T03:21:42.110Z","repository":{"id":308539854,"uuid":"1019382196","full_name":"web-infra-dev/rslint","owner":"web-infra-dev","description":"🚀 Go Faster. Go Typed","archived":false,"fork":false,"pushed_at":"2025-09-19T10:14:42.000Z","size":114912,"stargazers_count":323,"open_issues_count":38,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-09-19T12:29:40.288Z","etag":null,"topics":["javascript-linter","linter","rstack","tsgo","typescript","typescript-go","typescript-linting"],"latest_commit_sha":null,"homepage":"https://rslint.rs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/web-infra-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-07-14T08:40:40.000Z","updated_at":"2025-09-19T03:22:34.000Z","dependencies_parsed_at":"2025-08-06T14:29:21.544Z","dependency_job_id":"7ea38377-3407-427a-970f-1f5c938ef92c","html_url":"https://github.com/web-infra-dev/rslint","commit_stats":null,"previous_names":["web-infra-dev/rslint"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/web-infra-dev/rslint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web-infra-dev%2Frslint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web-infra-dev%2Frslint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web-infra-dev%2Frslint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web-infra-dev%2Frslint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/web-infra-dev","download_url":"https://codeload.github.com/web-infra-dev/rslint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/web-infra-dev%2Frslint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276685353,"owners_count":25685985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-24T02:00:09.776Z","response_time":97,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript-linter","linter","rstack","tsgo","typescript","typescript-go","typescript-linting"],"created_at":"2025-08-23T00:01:41.680Z","updated_at":"2025-09-24T03:21:42.101Z","avatar_url":"https://github.com/web-infra-dev.png","language":"TypeScript","readme":"\u003cpicture\u003e\n  \u003cimg alt=\"Rslint Banner\" src=\"https://assets.rspack.rs/rslint/rslint-banner.png\"\u003e\n\u003c/picture\u003e\n\n# Rslint\n\n\u003cp\u003e\n  \u003ca href=\"https://discord.gg/YtTedhuq7N\"\u003e\u003cimg src=\"https://img.shields.io/badge/chat-discord-blue?style=flat-square\u0026logo=discord\u0026colorA=564341\u0026colorB=EDED91\" alt=\"discord channel\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://npmjs.com/package/@rslint/core?activeTab=readme\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@rslint/core?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"npm version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://npmcharts.com/compare/@rslint/core?minimal=true\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/@rslint/core.svg?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"downloads\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/web-infra-dev/rslint/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"license\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e [!NOTE]\n\u003e Think of Rslint as Rust Clippy but for TypeScript — more like a TypeScript extension than an ESLint plugin.\n\nRslint 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.\n\n## ✨ Goals\n\n- 🚀 **Lightning Fast**: Built with Go and typescript-go, delivering 20-40x faster linting performance compared to traditional ESLint setups.\n- ⚡ **Minimal Configuration**: Typed linting enabled by default with minimal setup required — no complex configuration needed.\n- 📦 **Best Effort ESLint Compatible**: Compatible with most ESLint and TypeScript-ESLint configurations, significantly reducing migration costs.\n- 🎯 **TypeScript First**: Uses TypeScript Compiler semantics as the single source of truth, ensuring 100% consistency and eliminating edge-case bugs.\n- 🛠️ **Project-Level Analysis**: Performs cross-module analysis by default, enabling more powerful semantic analysis than file-level linting.\n- 🏢 **Monorepo Ready**: First-class support for large-scale monorepos with TypeScript project references and workspace configurations.\n- 📋 **Batteries Included**: Ships with all existing TypeScript-ESLint rules and widely-used ESLint rules out of the box.\n- 🔧 **Extensible**: Exposes AST, type information, and global checker data for writing custom rules with complex cross-module analysis.\n\n## ✅ Current Status\n\n\u003e [!NOTE]\n\u003e Rslint is currently in an experimental phase but is under active development.\n\nRslint 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)).\n\n## 🚀 Getting Started\n\nSee [Guide](https://rslint.rs/guide/).\n\n## 📖 Architecture Overview\n\n- [Architecture Overview](./architecture.md) - Comprehensive system architecture and implementation details\n\n## 🦀 Rstack\n\nRstack is a unified JavaScript toolchain built around Rspack, with high performance and consistent architecture.\n\n| Name                                                  | Description              | Version                                                                                                                                                                          |\n| ----------------------------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [Rspack](https://github.com/web-infra-dev/rspack)     | Bundler                  | \u003ca href=\"https://npmjs.com/package/@rspack/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@rspack/core?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"npm version\" /\u003e\u003c/a\u003e     |\n| [Rsbuild](https://github.com/web-infra-dev/rsbuild)   | Build tool               | \u003ca href=\"https://npmjs.com/package/@rsbuild/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@rsbuild/core?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"npm version\" /\u003e\u003c/a\u003e   |\n| [Rslib](https://github.com/web-infra-dev/rslib)       | Library development tool | \u003ca href=\"https://npmjs.com/package/@rslib/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@rslib/core?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"npm version\" /\u003e\u003c/a\u003e       |\n| [Rspress](https://github.com/web-infra-dev/rspress)   | Static site generator    | \u003ca href=\"https://npmjs.com/package/@rspress/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@rspress/core?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"npm version\" /\u003e\u003c/a\u003e   |\n| [Rsdoctor](https://github.com/web-infra-dev/rsdoctor) | Build analyzer           | \u003ca href=\"https://npmjs.com/package/@rsdoctor/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@rsdoctor/core?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"npm version\" /\u003e\u003c/a\u003e |\n| [Rstest](https://github.com/web-infra-dev/rstest)     | Testing framework        | \u003ca href=\"https://npmjs.com/package/@rstest/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@rstest/core?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"npm version\" /\u003e\u003c/a\u003e     |\n| [Rslint](https://github.com/web-infra-dev/rslint)     | Linter                   | \u003ca href=\"https://npmjs.com/package/@rslint/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@rslint/core?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"npm version\" /\u003e\u003c/a\u003e     |\n\n## 🤝 Contribution\n\nPlease read the [Contributing Guide](https://github.com/web-infra-dev/rslint/blob/main/CONTRIBUTING.md) and let's build Rslint together.\n\n### Code of Conduct\n\nThis repo has adopted the ByteDance Open Source Code of Conduct. Please check [Code of conduct](./CODE_OF_CONDUCT.md) for more details.\n\n## 💬 Community\n\nCome chat with us on [Discord](https://discord.gg/uPSudkun2b)! Rslint team and users are active there, and we're always looking for contributions.\n\n## 🙏 Credits\n\nRslint has been inspired by several outstanding projects in the community:\n\n- [@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.\n- [@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.\n- [@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.\n- 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.\n- 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.\n- 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.\n- The [typescript-go](https://github.com/microsoft/typescript-go) project - Powers Rslint's high-performance TypeScript parsing and semantic analysis capabilities.\n\n## 📖 License\n\nRslint is [MIT licensed](https://github.com/web-infra-dev/rslint/blob/main/LICENSE).\n","funding_links":[],"categories":["Resources"],"sub_categories":["Rstack"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb-infra-dev%2Frslint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweb-infra-dev%2Frslint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweb-infra-dev%2Frslint/lists"}