https://github.com/open-spaced-repetition/rs-fsrs
Rust-based Scheduler for FSRS
https://github.com/open-spaced-repetition/rs-fsrs
hacktoberfest rust spaced-repetition-algorithm
Last synced: 17 days ago
JSON representation
Rust-based Scheduler for FSRS
- Host: GitHub
- URL: https://github.com/open-spaced-repetition/rs-fsrs
- Owner: open-spaced-repetition
- License: mit
- Created: 2023-03-02T05:42:10.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-30T08:38:05.000Z (21 days ago)
- Last Synced: 2025-04-02T12:53:31.527Z (18 days ago)
- Topics: hacktoberfest, rust, spaced-repetition-algorithm
- Language: Rust
- Homepage: https://crates.io/crates/rs-fsrs
- Size: 82 KB
- Stars: 34
- Watchers: 3
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-fsrs - rs-fsrs
README
# rs-fsrs

A rust implementation of FSRS scheduler.
Install:
```toml
[dependencies]
rs-fsrs = { version = "1.2.1" }
```Quickstart:
```rust
use chrono::Utc;
use rs_fsrs::{FSRS, Card, Rating};fn main() {
let fsrs = FSRS::default();
let card = Card::new();let record_log = fsrs.repeat(card, Utc::now());
for rating in Rating::iter() {
let item = record_log[rating].to_owned();
println!("{:?}", item.card);
println!("{:?}", item.review_log);
}
}
```## Development
run
```sh
cargo fmt
cargo clippy -- -D clippy::nursery
cargo test --release
```## Other implementation
[fsrs-rs](https://github.com/open-spaced-repetition/fsrs-rs) contains a Rust API for training FSRS parameters, and for using them to schedule cards.
## Bindings
- [c/cpp](https://github.com/open-spaced-repetition/rs-fsrs-c)
- [python](https://github.com/open-spaced-repetition/rs-fsrs-python)
- [java](https://github.com/open-spaced-repetition/rs-fsrs-java)
- [nodejs](https://github.com/open-spaced-repetition/rs-fsrs-nodejs)## LICENSE
MIT