{"id":26988347,"url":"https://github.com/open-spaced-repetition/fsrs-browser","last_synced_at":"2025-06-14T22:03:06.806Z","repository":{"id":200064012,"uuid":"700872490","full_name":"open-spaced-repetition/fsrs-browser","owner":"open-spaced-repetition","description":"FSRS for the browser, including Optimizer and Scheduler","archived":false,"fork":false,"pushed_at":"2025-02-18T15:54:11.000Z","size":307,"stargazers_count":35,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-01T09:11:31.240Z","etag":null,"topics":["fsrs","machine-learning","rust","spaced-repetition-algorithm","wasm"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/fsrs-browser","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/open-spaced-repetition.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-05T13:13:09.000Z","updated_at":"2025-02-18T15:47:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"8abaef4b-e4dc-475b-8304-07a7d675151e","html_url":"https://github.com/open-spaced-repetition/fsrs-browser","commit_stats":null,"previous_names":["alexerrant/fsrs-wasm","alexerrant/fsrs-browser"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-spaced-repetition%2Ffsrs-browser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-spaced-repetition%2Ffsrs-browser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-spaced-repetition%2Ffsrs-browser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-spaced-repetition%2Ffsrs-browser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-spaced-repetition","download_url":"https://codeload.github.com/open-spaced-repetition/fsrs-browser/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709935,"owners_count":20821298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fsrs","machine-learning","rust","spaced-repetition-algorithm","wasm"],"created_at":"2025-04-03T20:08:46.223Z","updated_at":"2025-04-03T20:08:51.167Z","avatar_url":"https://github.com/open-spaced-repetition.png","language":"TypeScript","funding_links":[],"categories":["Implementation"],"sub_categories":[],"readme":"[![NPM Version](https://img.shields.io/npm/v/fsrs-browser.svg?style=flat)](https://www.npmjs.com/package/fsrs-browser)\n\n# fsrs-browser\n\nThis project runs [fsrs-rs](https://github.com/open-spaced-repetition/fsrs-rs) in the browser with support for training FSRS parameters.\n\n## Versioning\n\n`fsrs-browser`'s major and minor version numbers will match the version of `fsrs-rs` used. The patch version number is reserved for `fsrs-browser`'s use and may drift out of sync with `fsrs-rs`.\n\n## Building and demoing\n\nRun `./dev.sh` for fast builds or `./prod.sh` for fast runs.\n\nRun the `/sandbox` project to demo various behavior.\n\nI highly encourage `./prod.sh` if you intend to run training. On my machine training 24,394 revlogs on `./dev` takes days, while `./prod.sh` takes 3.5 seconds.\n\n## Updating the git submodules\n\nThis section is only relevant to devs who are updating [the `fsrs-browser` branch of `fsrs-rs`](https://github.com/open-spaced-repetition/fsrs-rs/tree/fsrs-browser) or [`open-spaced-repetition/burn`](https://github.com/open-spaced-repetition/burn/tree/fsrs-browser).\n\n`fsrs-browser` git submodules the aforementioned for reasons given [here](https://github.com/Tracel-AI/burn/pull/938#issuecomment-1925913866). Changes to these submodules should be written in a style to reduce merge conflicts. For example: \n\n* Comment code or tests out using `/* ... */` instead of deleting it.\n* Don't fix most warnings, no matter how sad clippy sounds.\n\nAuto-mergeable code is much, much better than \"clean code\". This is not the place or time for \"good code\".\n\nYou should also ignore CI/CD in these submodules. `fsrs-browser` uses [`wasm-bindgen-rayon`](https://github.com/RReverser/wasm-bindgen-rayon), which in turn uses `target-feature=+atomics,+bulk-memory,+mutable-globals`, which require nightly. Expecting CI/CD for the submodules to work with nightly is unreasonable, and fixing them only invites more opportunity for merge conflicts. The only CI/CD that matters is `fsrs-browser`'s.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-spaced-repetition%2Ffsrs-browser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-spaced-repetition%2Ffsrs-browser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-spaced-repetition%2Ffsrs-browser/lists"}