{"id":21986043,"url":"https://github.com/tamschi/tiptoe","last_synced_at":"2026-01-17T22:52:58.038Z","repository":{"id":42090911,"uuid":"416456249","full_name":"Tamschi/tiptoe","owner":"Tamschi","description":"An easy-to-support intrusively reference-counting smart pointer.","archived":false,"fork":false,"pushed_at":"2024-07-26T13:37:05.000Z","size":100,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-03-28T02:48:05.601Z","etag":null,"topics":["hacktoberfest","intrusive-containers","intrusive-ptr","reference-counting","rust","threading"],"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/Tamschi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"Tamschi"}},"created_at":"2021-10-12T18:40:19.000Z","updated_at":"2024-12-13T20:22:30.000Z","dependencies_parsed_at":"2024-07-26T15:10:08.302Z","dependency_job_id":null,"html_url":"https://github.com/Tamschi/tiptoe","commit_stats":{"total_commits":48,"total_committers":3,"mean_commits":16.0,"dds":"0.14583333333333337","last_synced_commit":"251ea12d1b31714dff0e5ed945c4eb7d59764963"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":"Tamschi/rust-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tamschi%2Ftiptoe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tamschi%2Ftiptoe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tamschi%2Ftiptoe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tamschi%2Ftiptoe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tamschi","download_url":"https://codeload.github.com/Tamschi/tiptoe/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246989998,"owners_count":20865389,"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":["hacktoberfest","intrusive-containers","intrusive-ptr","reference-counting","rust","threading"],"created_at":"2024-11-29T18:16:53.076Z","updated_at":"2026-01-17T22:52:57.995Z","avatar_url":"https://github.com/Tamschi.png","language":"Rust","funding_links":["https://github.com/sponsors/Tamschi"],"categories":[],"sub_categories":[],"readme":"# tiptoe\n\n[![Lib.rs](https://img.shields.io/badge/Lib.rs-*-84f)](https://lib.rs/crates/tiptoe)\n[![Crates.io](https://img.shields.io/crates/v/tiptoe)](https://crates.io/crates/tiptoe)\n[![Docs.rs](https://docs.rs/tiptoe/badge.svg)](https://docs.rs/tiptoe)\n\n![Rust 1.54](https://img.shields.io/static/v1?logo=Rust\u0026label=\u0026message=1.54\u0026color=grey)\n[![CI](https://github.com/Tamschi/tiptoe/workflows/CI/badge.svg?branch=develop)](https://github.com/Tamschi/tiptoe/actions?query=workflow%3ACI+branch%3Adevelop)\n![Crates.io - License](https://img.shields.io/crates/l/tiptoe/0.0.2)\n\n[![GitHub](https://img.shields.io/static/v1?logo=GitHub\u0026label=\u0026message=%20\u0026color=grey)](https://github.com/Tamschi/tiptoe)\n[![open issues](https://img.shields.io/github/issues-raw/Tamschi/tiptoe)](https://github.com/Tamschi/tiptoe/issues)\n[![open pull requests](https://img.shields.io/github/issues-pr-raw/Tamschi/tiptoe)](https://github.com/Tamschi/tiptoe/pulls)\n[![good first issues](https://img.shields.io/github/issues-raw/Tamschi/tiptoe/good%20first%20issue?label=good+first+issues)](https://github.com/Tamschi/tiptoe/contribute)\n\n[![crev reviews](https://web.crev.dev/rust-reviews/badge/crev_count/tiptoe.svg)](https://web.crev.dev/rust-reviews/crate/tiptoe/)\n[![Zulip Chat](https://img.shields.io/endpoint?label=chat\u0026url=https%3A%2F%2Fiteration-square-automation.schichler.dev%2F.netlify%2Ffunctions%2Fstream_subscribers_shield%3Fstream%3Dproject%252Ftiptoe)](https://iteration-square.schichler.dev/#narrow/stream/project.2Ftiptoe)\n\nAn easy-to-support intrusively reference-counting smart pointer.\n\n\u003c!-- TODO: \\rs. Implement once non-generically for both `Arc` and `Rc`, no overhead. --\u003e\n\n## Installation\n\nPlease use [cargo-edit](https://crates.io/crates/cargo-edit) to always add the latest version of this library:\n\n```cmd\ncargo add tiptoe --features sync\n```\n\n## Features\n\n### `\"sync\"`\n\nEnables the [`Arc`](https://docs.rs/tiptoe/latest/tiptoe/struct.Arc.html) type, which requires [`AtomicUsize`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html).\n\n## Example\n\n```rust\nuse pin_project::pin_project;\nuse tiptoe::{IntrusivelyCountable, TipToe};\n\n// All attributes optional.\n#[pin_project]\n#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]\npub struct A {\n    #[pin]\n    ref_counter: TipToe,\n}\n\nunsafe impl IntrusivelyCountable for A {\n    type RefCounter = TipToe;\n\n    fn ref_counter(\u0026self) -\u003e \u0026Self::RefCounter {\n        \u0026self.ref_counter\n    }\n}\n\nfn main() {\n    #[cfg(feature = \"sync\")]\n    {\n        use tiptoe::Arc;\n\n        let arc = Arc::new(A::default());\n        let inner_ref: \u0026A = \u0026arc;\n\n        let another_arc = unsafe {\n            Arc::borrow_from_inner_ref(\u0026inner_ref)\n        }.clone();\n    }\n}\n```\n\n## Implementation Progress\n\nThis library is currently only implemented about as far as I need it for rhizome.\n\nPlease have a look at the [issues](https://github.com/Tamschi/tiptoe/issues) if you'd like to help out.\n\nNotable current omissions: `Rc`, `Weak`, and most optimisation that doesn't affect the API.\n\n## License\n\nLicensed under either of\n\n- Apache License, Version 2.0\n   ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT license\n   ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\nat your option.\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall be\ndual licensed as above, without any additional terms or conditions.\n\nSee [CONTRIBUTING](CONTRIBUTING.md) for more information.\n\n## [Code of Conduct](CODE_OF_CONDUCT.md)\n\n## [Changelog](CHANGELOG.md)\n\n## Versioning\n\n`tiptoe` strictly follows [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html) with the following exceptions:\n\n- The minor version will not reset to 0 on major version changes (except for v1).  \nConsider it the global feature level.\n- The patch version will not reset to 0 on major or minor version changes (except for v0.1 and v1).  \nConsider it the global patch level.\n\nThis includes the Rust version requirement specified above.  \nEarlier Rust versions may be compatible, but this can change with minor or patch releases.\n\nWhich versions are affected by features and patches can be determined from the respective headings in [CHANGELOG.md](CHANGELOG.md).\n\nNote that dependencies of this crate may have a more lenient MSRV policy!\nPlease use `cargo +nightly update -Z minimal-versions` in your automation if you don't generate Cargo.lock manually (or as necessary) and require support for a compiler older than current stable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamschi%2Ftiptoe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftamschi%2Ftiptoe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamschi%2Ftiptoe/lists"}