{"id":15401102,"url":"https://github.com/sunfishcode/rustix-futex-sync","last_synced_at":"2025-04-15T21:34:29.543Z","repository":{"id":190629748,"uuid":"683117859","full_name":"sunfishcode/rustix-futex-sync","owner":"sunfishcode","description":"Linux futex-based synchronization","archived":false,"fork":false,"pushed_at":"2025-03-07T01:03:21.000Z","size":98,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-13T10:55:02.016Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/sunfishcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","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-08-25T16:35:31.000Z","updated_at":"2025-03-06T20:06:36.000Z","dependencies_parsed_at":"2023-12-08T18:41:56.613Z","dependency_job_id":"ad171e53-ff30-4663-bca8-a3b50c787279","html_url":"https://github.com/sunfishcode/rustix-futex-sync","commit_stats":{"total_commits":39,"total_committers":1,"mean_commits":39.0,"dds":0.0,"last_synced_commit":"349424951526499f34c5a59addc8969285d03ba1"},"previous_names":["sunfishcode/rustix-futex-sync"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfishcode%2Frustix-futex-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfishcode%2Frustix-futex-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfishcode%2Frustix-futex-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunfishcode%2Frustix-futex-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunfishcode","download_url":"https://codeload.github.com/sunfishcode/rustix-futex-sync/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249108758,"owners_count":21214055,"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":[],"created_at":"2024-10-01T15:56:29.569Z","updated_at":"2025-04-15T21:34:29.538Z","avatar_url":"https://github.com/sunfishcode.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e\u003ccode\u003erustix-futex-sync\u003c/code\u003e\u003c/h1\u003e\n\n  \u003cp\u003e\n    \u003cstrong\u003eLinux futex-based synchronization\u003c/strong\u003e\n  \u003c/p\u003e\n\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/sunfishcode/rustix-futex-sync/actions?query=workflow%3ACI\"\u003e\u003cimg src=\"https://github.com/sunfishcode/rustix-futex-sync/workflows/CI/badge.svg\" alt=\"Github Actions CI Status\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://bytecodealliance.zulipchat.com/#narrow/stream/206238-general\"\u003e\u003cimg src=\"https://img.shields.io/badge/zulip-join_chat-brightgreen.svg\" alt=\"zulip chat\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/rustix-futex-sync\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/rustix-futex-sync.svg\" alt=\"crates.io page\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://docs.rs/rustix-futex-sync\"\u003e\u003cimg src=\"https://docs.rs/rustix-futex-sync/badge.svg\" alt=\"docs.rs docs\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\nLinux futex-based implementations of [`Mutex`], [`RwLock`], [`Condvar`],\n[`Once`], and [`OnceLock`], as well as [`RawMutex`], [`RawRwLock`], and\n[`RawCondvar`], derived from the futex code in std, factored out to a\nstandalone `no_std` crate using [`rustix`] to do the futex and [`lock_api`] to\nprovide most of the public `Mutex` and `RwLock` API.\n\n`lock_api` does not support poisoning, so support for poisoning is omitted.\n\nIn this library, `Condvar`, `RawCondvar`, `RawMutex`, and `Once` are guaranteed\nto be `repr(transparent)` wrappers around a single `AtomicU32`. `RawRwLock` is\nguaranteed to be a `repr(C)` wrapper around two `AtomicU32`s. The contents of\nthese `AtomicU32`s are not documented, except that all these types'\n`const fn new()` and `INIT` are guaranteed to initialize them to all zeros.\n\nThese types use the `FUTEX_PRIVATE_FLAG` flag so they don't work for\nsynchronizing in memory shared between multiple processes. Enabling the \"shm\"\nfeature enables the `shm` module, which contains shared-memory versions of all\nthe main types.\n\n[`Mutex`]: https://docs.rs/rustix-futex-sync/latest/rustix_futex_sync/type.Mutex.html\n[`RwLock`]: https://docs.rs/rustix-futex-sync/latest/rustix_futex_sync/type.RwLock.html\n[`Condvar`]: https://docs.rs/rustix-futex-sync/latest/rustix_futex_sync/struct.Condvar.html\n[`Once`]: https://docs.rs/rustix-futex-sync/latest/rustix_futex_sync/struct.Once.html\n[`OnceLock`]: https://docs.rs/rustix-futex-sync/latest/rustix_futex_sync/struct.OnceLock.html\n[`RawMutex`]: https://docs.rs/rustix-futex-sync/latest/rustix_futex_sync/struct.RawMutex.html\n[`RawRwLock`]: https://docs.rs/rustix-futex-sync/latest/rustix_futex_sync/struct.RawRwLock.html\n[`RawCondvar`]: https://docs.rs/rustix-futex-sync/latest/rustix_futex_sync/type.RawCondvar.html\n[`rustix`]: https://github.com/bytecodealliance/rustix#readme\n[`lock_api`]: https://crates.io/crates/lock_api\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunfishcode%2Frustix-futex-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunfishcode%2Frustix-futex-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunfishcode%2Frustix-futex-sync/lists"}