# RPL
**Repository Path**: TheVeryDarkness/RPL
## Basic Information
- **Project Name**: RPL
- **Description**: No description available
- **Primary Language**: Rust
- **License**: MPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-07-12
- **Last Updated**: 2025-09-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# RPL
This is the main source code repository of RPL. It contains the toolchain and documentation of RPL.
## What is RPL?
RPL is a Rust linter which decouples the definition of rules from the detection logic.
In particular, RPL consists of two primary components:
- a Domain-Specific Language (DSL) that allows developers to model/define code patterns,
- a detection engine to detect instances of these patterns.
The toolchain of RPL, which is a custom configuration of Rust compiler, enables accurate identification of code instances that demonstrate semantic equivalence to existing patterns.
## Quick Start
1. Clone the repository and enter the directory: `git clone https://github.com/RPL-Toolchain/RPL.git && cd RPL`
2. Install RPL as a cargo subcommand: `cargo install --path .`
3. Run RPL analysis on your Rust project:
- check using built-in RPL pattern definitions based on inline MIR:
```sh
RPL_PATS=/path/to/RPL/docs/patterns-pest cargo +nightly-2025-02-14 rpl
```
- check using built-in RPL pattern definitions based on MIR:
```sh
RUSTFLAGS="-Zinline-mir=false" RPL_PATS=/path/to/RPL/docs/patterns-pest cargo +nightly-2025-02-14 rpl
```
or
```sh
RPL_PATS=/path/to/RPL/docs/patterns-pest cargo +nightly-2025-02-14 rpl -- -Zinline-mir=false
```
You can also store the environment variable `RPL_PATS` for convenience.
Without setting `RPL_PATS`, built-in RPL pattern definitions are used.
TIP: You can view all available lints with `cargo rpl -- -W help`.
## RPL Book
See [this website](https://rpl-toolchain.github.io/rpl-book/) for the RPL book (Work in progress).
## Getting Help
Feel free to open an issue or contact us via email (stuuupidcat@163.com) if you have any questions.
## Contributing
See [this document](./CONTRIBUTING.md) for contribution-related instructions.
## License
This project is licensed under the [MPL-2.0](./LICENSE).