Skip to content

Commit d2f55a1

Browse files
committed
docs: update README with Rstack introduction
1 parent 64a4bd3 commit d2f55a1

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

README.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,31 @@ Rslint aims to be a drop-in replacement for ESLint and TypeScript-ESLint, just a
2121
2222
### Goals
2323

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.
3031

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
3233

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.
3435

35-
### Non-Goals
36+
## 🦀 Rstack
37+
38+
Rstack is a unified JavaScript toolchain built around Rspack, with high performance and consistent architecture.
3639

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.
40+
| Name | Description |
41+
| ----------------------------------------------------- | ------------------------ |
42+
| [Rspack](https://github.com/web-infra-dev/rspack) | Bundler |
43+
| [Rsbuild](https://github.com/web-infra-dev/rsbuild) | Build tool |
44+
| [Rslib](https://github.com/web-infra-dev/rslib) | Library development tool |
45+
| [Rspress](https://github.com/web-infra-dev/rspress) | Static site generator |
46+
| [Rsdoctor](https://github.com/web-infra-dev/rsdoctor) | Build analyzer |
47+
| [Rstest](https://github.com/web-infra-dev/rstest) | Testing framework |
48+
| [Rslint](https://github.com/web-infra-dev/rslint) | Linter |
3849

3950
## 🤝 Contribution
4051

0 commit comments

Comments
 (0)