Awesome
<div align=center> <h1>rsRPC</h1> <div align="center"> <img src="https://img.shields.io/github/actions/workflow/status/SpikeHD/rsRPC/build.yml" /> <img src="https://img.shields.io/github/actions/workflow/status/SpikeHD/rsRPC/code_quality.yml?label=code quality" /> <img src="https://img.shields.io/github/repo-size/SpikeHD/rsRPC" /> </div> <p>Discord RPC server binary and library, lovingly written in Rust using the core research from <a href="https://github.com/OpenAsar/arRPC">arRPC</a> <sup>(love you guys 💕)</sup></p> </div>Features
- Basic process detection
- IPC/Socket-based RPC detection
- Websocket-based RPC detection
- Add new processes on the fly
- Manually trigger scans
Building
Requirements
Testing it out
- Download a binary from releases, GitHub Actions or build it yourself below!
- If you just want to use the default detectable list, just run the binary!
- If you want to use your own detectable list, place a
detectable.json
file in the same directory as the binary (you can use the arRPC one as an example), then run the binary with./rsrpc -d ./detectable.json
Building the binary
- Clone the repository
- Place a
detectable.json
file in the root folder (you can use the arRPC one as an example) - If you wanna try it out, run
cargo run --features binary -- -d ./detectable.json
in the root directory - If you want to make a build, run
cargo build --features binary
in the root directory - The binary will be in
target/release/rsrpc
Using as a library
- Add the following to your
Cargo.toml
file:
[dependencies]
rsrpc = { git = "https://www.github.com/SpikeHD/rsRPC", tag = "VERSION_NUMBER_HERE" }
- Use the library in your code:
use rsrpc::RPCServer;
fn main() {
let mut server = RPCServer::from_file("./detectable.json");
server.start();
}
You can also grab the detectable.json
programmatically and pass it via string:
fn main() {
let detectable = reqwest::blocking::get("https://raw.githubusercontent.com/OpenAsar/arrpc/main/src/process/detectable.json").unwrap().text().unwrap();
// This accepts both a `&str` or a `String`
let mut server = RPCServer::from_json_str(detectable);
server.start();
}