You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+21-10Lines changed: 21 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,20 +21,31 @@ Rslint aims to be a drop-in replacement for ESLint and TypeScript-ESLint, just a
21
21
22
22
### Goals
23
23
24
-
- Minimal Migration Cost: Rslint aims to be highly compatible with ESLint and TypeScript-ESLint configurations, significantly reducing the cost of migration.
25
-
- Typed Linting First: We believe typed linting is essential for advanced semantic analysis. Rslint enables typed linting by default and aims to make it effortless to adopt — no complex setup required.
26
-
- TypeScript Semantics as the Single Source of Truth:
27
-
While it’s possible to reimplement TypeScript’s semantics in another language, achieving 100% consistency is extremely difficult and often leads to subtle edge-case bugs—such as discrepancies in resolver behavior, symbol resolution, and project reference support. Rslint avoids these pitfalls by adopting tsgo’s native TypeScript semantics for static analysis, ensuring full alignment and eliminating inconsistencies.
28
-
- Project-Level Analysis First: Unlike ESLint, which defaults to file-level analysis, Rslint performs project-level analysis by default (similar to Clippy). This enables more powerful cross-module analysis and better support for incremental linting.
29
-
- First-Class Monorepo Support: TypeScript already offers strong monorepo support. Rslint builds on this by following TypeScript’s best practices and the excellent design of typescript-eslint's [project service](https://typescript-eslint.io/blog/project-service) to provide robust support for large-scale monorepos.
24
+
-**Minimal Migration Cost**: Rslint aims to be highly compatible with ESLint and TypeScript-ESLint configurations, significantly reducing the cost of migration.
25
+
-**Typed Linting First**: We believe typed linting is essential for advanced semantic analysis. Rslint enables typed linting by default and aims to make it effortless to adopt — no complex setup required.
26
+
-**TypeScript Semantics as the Single Source of Truth**: While it’s possible to reimplement TypeScript’s semantics in another language, achieving 100% consistency is extremely difficult and often leads to subtle edge-case bugs—such as discrepancies in resolver behavior, symbol resolution, and project reference support. Rslint avoids these pitfalls by adopting tsgo's native TypeScript semantics for static analysis, ensuring full alignment and eliminating inconsistencies.
27
+
-**Project-Level Analysis First**: Unlike ESLint, which defaults to file-level analysis, Rslint performs project-level analysis by default (similar to Clippy). This enables more powerful cross-module analysis and better support for incremental linting.
28
+
-**First-Class Monorepo Support**: TypeScript already offers strong monorepo support. Rslint builds on this by following TypeScript’s best practices and the excellent design of typescript-eslint's [project service](https://typescript-eslint.io/blog/project-service) to provide robust support for large-scale monorepos.
29
+
-**Batteries Included**: Rslint will include all existing typescript-eslint rules as well as widely used ESLint rules out of the box.
30
+
-**Custom Rule Support**: Rslint will expose both the AST, typed information, and global checker data to rule authors, making it easy to write complex cross-module analysis and custom rules.
30
31
31
-
- Batteries Included: Rslint will include all existing typescript-eslint rules as well as widely used ESLint rules out of the box.
32
+
### Non-Goals
32
33
33
-
-Custom Rule Support: Rslint will expose both the AST, typed information, and global checker data to rule authors, making it easy to write complex cross-module analysis and custom rules.
34
+
-**Language Agnostic**: We don't plan to support non-TypeScript/JavaScript languages (e.g., CSS or HTML) in the near term — though we remain open to exploring this in the long term.
34
35
35
-
### Non-Goals
36
+
## 🦀 Rstack
37
+
38
+
Rstack is a unified JavaScript toolchain built around Rspack, with high performance and consistent architecture.
36
39
37
-
- Language Agnostic: We don’t plan to support non-TypeScript/JavaScript languages (e.g., CSS or HTML) in the near term — though we remain open to exploring this in the long term.
0 commit comments