1 stable release

1.2.1 Oct 28, 2024

#586 in Concurrency

Download history 124/week @ 2024-10-26 8/week @ 2024-11-02

132 downloads per month

Custom license

46KB
1.5K SLoC

rs-fsrs

A rust implementation of FSRS scheduler.

Install:

[dependencies]
fsrs = { git = "https://github.com/open-spaced-repetition/rs-fsrs" }
chrono = { version = "0.4.23", features = ["serde"] }

Quickstart:

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

cargo fmt
cargo clippy -- -D clippy::nursery
cargo test --release

Other implementation

fsrs-rs contains a Rust API for training FSRS parameters, and for using them to schedule cards.

Bindings

LICENSE

MIT

Dependencies

~1–1.6MB
~28K SLoC