# rs-fsrs

A rust implementation of FSRS scheduler.
Install:
```toml
[dependencies]
fsrs = { git = "https://github.com/open-spaced-repetition/rs-fsrs" }
chrono = { version = "0.4.23", features = ["serde"] }
```
Quickstart:
```rust
use chrono::Utc;
use 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