# rwmem
`rwmem` is a Rust library to read from / write to / search on memory of a process. You can think of it like "Cheat Engine", but as a library.
# Caveat Lector
This library is not production ready. It is a work in progress. The API is subject to breaking change.
Currently, only supported platform is Linux and 64-bit processors.
# Usage
In the heart of this library, there is `Process` struct. To initialize it:
```rust
use rwmem::prelude::Process;
// assuming you have a pid, which is i32
let process = Process:try_new(pid);
```
As the name suggests (`try_`), initialization might fail. Refer to `rwmem::prelude::ProcessError` to see the potentional types of errors.
After you initialize the `Process`, you must import and use one of the extension traits to use the library. Currently, available extension traits are:
- `SearchExt`: to search a value in the memory of the process
- `ReadExt`: to read a value from the memory of the process
- `WriteExt`: to write a value to the memory of the process
You can simply import as below to get all the extensions working:
```rust
use rwmem::prelude::*;
```
Each extension has its methods implemented for `Process`. Refer to each one in the docs to see their methods.
# License
This project is licensed under the [Mozilla Public License Version 2.0](https://www.mozilla.org/en-US/MPL/2.0/), meaning that you can freely use, modify, and distribute this project in any closed-source software.
However, if you change the code of _this_ project, you must make your changes available to the public, either via contributing back or by publishing it yourself.