{"id":15061020,"url":"https://github.com/ocaml/stdlib-random","last_synced_at":"2025-10-20T00:32:13.925Z","repository":{"id":46734863,"uuid":"505423185","full_name":"ocaml/stdlib-random","owner":"ocaml","description":"Versioned random number library","archived":false,"fork":false,"pushed_at":"2024-03-29T12:25:33.000Z","size":141,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-04-06T07:33:58.736Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ocaml.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","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}},"created_at":"2022-06-20T12:01:15.000Z","updated_at":"2024-03-21T02:50:47.000Z","dependencies_parsed_at":"2024-03-08T15:49:47.062Z","dependency_job_id":"f3d0c89e-1f3b-4448-80c3-bf0d4ad14d91","html_url":"https://github.com/ocaml/stdlib-random","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ocaml/stdlib-random","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocaml%2Fstdlib-random","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocaml%2Fstdlib-random/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocaml%2Fstdlib-random/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocaml%2Fstdlib-random/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ocaml","download_url":"https://codeload.github.com/ocaml/stdlib-random/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ocaml%2Fstdlib-random/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279955437,"owners_count":26250499,"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","status":"online","status_checked_at":"2025-10-19T02:00:07.647Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-09-24T23:08:16.543Z","updated_at":"2025-10-20T00:32:13.528Z","avatar_url":"https://github.com/ocaml.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Compatibility library for Random number generation\n\nThis library provides access to the various implementation of the Random module\nfrom the OCaml standard library independently of the compiler version.\n\n## Signature compatibility\n\nWhenever possible, the signature of the the older Random module has been\nextended with functions that were added in newer versions.\n\nCurrently, this means that all `Random*` modules before `v5` shares the exact same type\nwhereas the Random5 module is the only to define a `split` function since\nprevious PRNGs are not splittable.\n\n## stdlib-random.v5 library\n\nThe `stdlib-random.v5` library uses the same LXM pseudo-random number generator as\nthe one used in OCaml 5.\n\nFor versions of OCaml that support multiple domains, the global PRNG of this library\nis a domain local state rather than a global state to avoid any potential contention\nissue on this global PRNG.\nMoreover, whenever a new domain is spawn, its global PRNG is split from the\nPRNG of the parent domain which ensures that both PRNGs are essentially\nindependent.\n\n## stdlib-random.v5o library\n\nThe `stdlib-random.v5o` library provides a pure OCaml alternative to\nthe `stdlib-random.v5` library which uses a C implementation when updating the\nPRNG state.\n\n## stdlib-random.v4 library\n\nThe `stdlib-random.v4` library exposes the  lagged-Fibonacci F(55, 24, +) PRNG with a modified addition function used from OCaml 3.12 to OCaml 4.14 .\n\n\n## stdlib-random.v3 library\n\nThe `stdlib-random.v3` library exposes the  lagged-Fibonacci F(55, 24, +) PRNG used\nfrom OCaml 3.07 to OCaml 3.11.\n\nNote that this library prioritizes compatibility over correctness.\nIn particular, the state of this generator is not marshallable across\narchitecture with different word size.\nIt is thus advisable to use this PRNG only when compatibility with OCaml 3 PRNG is a\nstrict requirement.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Focaml%2Fstdlib-random","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Focaml%2Fstdlib-random","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Focaml%2Fstdlib-random/lists"}