Skip to content

Releases: open-spaced-repetition/r-fsrs

v0.3.0: Parameter Optimizer

04 Feb 10:31

Choose a tag to compare

v0.2.0

01 Feb 15:54

Choose a tag to compare

What's New

Breaking Changes

  • Low-level functions (fsrs_initial_state, fsrs_next_state, fsrs_next_interval) now accept an optional params argument. Existing code continues to work (defaults to NULL).

New Features

  • fsrs_repeat() - Get all 4 rating outcomes (Again/Hard/Good/Easy) in a single call
  • fsrs_from_sm2() - Convert SM-2 ease factor & interval to FSRS state (for Anki migration)
  • fsrs_memory_state() - Compute memory state from a sequence of reviews
  • fsrs_retrievability_vec() - Vectorized retrievability for large datasets
  • Scheduler$preview_card() - Preview outcomes without modifying the card
  • Card$clone_card() - Deep copy a card
  • fsrs_simulate() - Convenience function to simulate learning

Bug Fixes

  • Scheduler now actually uses custom parameters (was silently ignoring them!)
  • State transitions now correctly match py-fsrs/rs-fsrs behavior

Full Changelog

v0.1.0...v0.2.0

v0.1.0

17 Jan 19:17

Choose a tag to compare

Initial release featuring:

  • Core FSRS-6 algorithm via Rust bindings (fsrs-rs)
  • py-fsrs style API: Card, Scheduler, Rating, State, ReviewLog
  • JSON serialization support
  • Custom parameters and desired retention
  • Interval fuzzing option
  • Full documentation and vignettes