REnforce
App Listed Dormant
Reinforcement learning library written in Rust
- Downloads
- Not measured
- Dependents
- Not applicable
- Stars
- 24
- Forks
- 3
- Contributors
- 1
- Commits
- 114
About
Reinforcement library written in Rust
This library is still in early stages, and the API has not yet been finalized. The documentation can be found here. Contributions and comments are welcomed.
As things are right now, the main focus has been on getting some working examples to see how the library can be used, to get a feel for how reasonable the API is, and to get more comfortable with RL. Going forward, the API still needs to be improved (made more intuitive and customizable), the code needs to be safer (less prone to panic), more RL algorithms need to be incorporated, and the documentation needs a lot of work.
Adding library to your project
Use cargo to add this library to your project. This library is not in crates.io yet, so add the following to your Cargo.toml in order to include it
[dependencies]
renforce = {git = "https://github.com/NivenT/REnforce.git"}
and remember to extern it in your project
extern crate renforce;
Example Usage
See the examples and tests folders for example usage. In particular, once an environment has been set up, an agent can be trained and tested using code similar to this
Read the full README
fn main() {
// Create the environment
let mut env = ExampleEnvironment::new();
// Here, the agent will use linear value approximators for each action in a given state
// The agent will select actions based on how high of a value it assigns them
let q_func = QLinear::default(&env.action_space());
// Creates an epsilon greedy Q-agent
// Agent will use softmax to act randomly 5% of the time
let mut agent = EGreedyQAgent::new(q_func, env.action_space(), 0.05, Softmax::default());
// Here, we use Q-learning to train the agent
// By default the discount factor is 0.95,
// the learning rate is 0.1,
// the trainer trains for 100 episodes when called train
// We set the learning rate (alpha) to 0.9
let trainer = QLearner::default(&env.action_space()).alpha(0.9);
// Magic happens
trainer.train(&mut agent, &mut env);
// Simulate one episode of the environment to see what the agent learned
let mut obs = env.reset();
while !obs.done {
env.render();
let action = agent.get_action(obs.state);
obs = env.step(action);
}
env.render();
}
Contributing
If you see something that could be done better, or have an idea for a feature that you want to add, then fork and sumbit a PR and/or create an issue for it. If you want to contribute, but you're not sure where to start, feel free to email me with any questions.
Progress
A lot remains to be done, but the following reinforcement learning algorithms have been implemented* thus far...
* - implementations possibly flawed, but you have to start somewhere
Compatibility
- License
- None stated
- Crate facts
- Not measured
- Runs on, Native code and Python bindings read crates on crates.io. This entry lists no crate.
Compare with similar projects
Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.
| Project | Downloads | Dependents | Stars | Latest release | Runs on (GPU) | Native code | License |
|---|---|---|---|---|---|---|---|
|
Reinforcement learning library written in Rust |
Not measured | Not applicable | 24 | Not measured | Not measured | Not measured | None stated |
|
nexar Listed
Distributed runtime that replaces MPI between nodes: point-to-point messages, 11 collectives and RPC over QUIC, with no mpirun or MPI library. |
1,191 downloads over 30 days | 5 | 5 | 0.2.1 | CUDA | Binds native code: ring. Build uses a native toolchain: bindgen, pkg-config | Apache-2.0 |
|
Flexible, reusable reinforcement learning (Q learning) implementation |
150 downloads over 30 days | 0 | 165 | 0.6.0 | GPU support unknown | No native code found | MPL-2.0 |
|
A fast, extensible reinforcement learning framework in Rust |
80 downloads over 30 days | 0 | 204 | 0.8.1 | GPU support unknown | Binds native code: lapack-sys | MIT |
|
Open AI environments bindings for Rust |
75 downloads over 30 days | 2 | 70 | 2.2.1 | GPU support unknown | No native code found | Apache-2.0 OR MIT |
|
bevy_rl Listed
Build environments for reinforcement learning with bevy |
33 downloads over 30 days | 1 | 104 | 0.17.0 | WebGPU | No native code found | Apache-2.0 OR MIT |
|
Rust implementation of real-coded genetic algorithm for solving optimization problems and training of neural networks. The latter is also known as neuroevolution. |
9 downloads over 30 days | 0 | 20 | 0.2.1 | GPU support unknown | No native code found | GPL-3.0 |
Why ListedNo archive, New or Featured rule places it, so it is Listed.
What it lacks for Featured
- The project is dormant and not finished. Dormancy rule
What else the check found
- The last activity is on 3 Aug 2017, 3385 days ago. That reaches the 365 days the rules expect, so the project is dormant. Dormancy rule
Not measured: Latest release, Unpatched vulnerabilities past the grace window, Binary downloads per release, First release.
Exact rules: Listed, Featured app. The check on applied thresholds version 9.
Every rule outcome, as the check records it
expected-interval: app: E = 365 daysdormancy: last activity 2017-08-03, 3385 days ago, E = 365: dormantfeatured: not featured: dormant and not stablelisted: listed: no archive, new or featured rule applies
Measurements and sources
Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.
Sources4 sources
- Description: the GitHub repository description
- GitHub repository, fetched
- GitHub releases, fetched
- GitHub contributors, fetched
AdoptionNot measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Active dependents | Not measured | Yes | ||
| New dependents (365 days) | Not measured | Yes | ||
| Peak active dependents | Not measured | Yes | ||
| Active dependents as a share of the peak | Not measured | Yes | ||
| Binary downloads per release | Not measured | Yes |
MaintenanceLatest human commit: 9 years ago8 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Latest human commit | 2017-08-03 | GitHub repository | Yes | |
| Latest release | Not measured | Yes | ||
| First release | Not measured | Yes | ||
| Latest version | Not measured | Yes | ||
| Days the oldest outside issue waits for a reply | 0 | GitHub repository | Yes | |
| Maintainer replies over 365 days | 0 | GitHub repository | Yes | |
| Repository archived | false | GitHub repository | Yes | |
| Repository gone | false | GitHub repository | Yes | |
| Release commit or manifest in the repo | Not measured | Yes | ||
| Published docs | Not measured | Yes | ||
| Latest release fails cargo check | Not measured | Yes | ||
| Build check date | Not measured | Yes | ||
| Build check toolchain | Not measured | Yes |
SecurityNot measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Unpatched vulnerabilities past the grace window | Not measured | Yes | ||
| RustSec unmaintained advisory | Not measured | Yes | ||
| Deprecation notice | Not measured | Yes | ||
| Deprecated requirement | Not measured | Yes |
Distribution0 binary downloads over the last 3 releases10 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Releases | Not measured | Yes | ||
| Downloads over 30 days | Not measured | Yes | ||
| Binary downloads over the last 3 releases | 0 | GitHub releases | Yes | |
| Homebrew installs on request over 365 days | Not measured | Yes | ||
| Repology repository families | Not measured | Yes | ||
| Docker pull growth over 90 days | Not measured | Yes | ||
| Docker pulls at the growth baseline | Not measured | Yes | ||
| Every version a prerelease | Not measured | Yes | ||
| Every version 0.0.x | Not measured | Yes | ||
| Every version yanked | Not measured | Yes | ||
| Crate deleted from crates.io | Not measured | Yes |
Repository24 stars, 3 forks, 1 contributors, 114 commits. Stars alone never qualify a project.1 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| GitHub stars | 24 | GitHub repository | Yes — one part of the repository route | |
| GitHub forks | 3 | GitHub repository | Yes — one part of the repository route | |
| Contributors with a GitHub account | 1 | GitHub contributors | Yes — one part of the repository route | |
| Commits on the default branch | 114 | GitHub repository | No | |
| Repository's main crate left out of the entry | Not measured | Yes |
Facts that never count
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| License | None stated | GitHub repository | No | |
| Runs on, from listed crates and their direct dependencies | Not measured | No | ||
| What shows each backend | Not measured | No | ||
| Native code, from listed crates and their dependencies | Not measured | No | ||
| Python bindings, from direct dependencies of listed crates | Not measured | No | ||
| Crates that depend on a listed crate directly | Not measured | No |
Corrections and review history
No correction applies to this entry.
Judgments
A judgment enters only through an approved issue and a merged pull request.
No judgment applies to this entry.