{"id":16760167,"url":"https://github.com/maulingmonkey/ialloc","last_synced_at":"2025-03-21T23:32:16.596Z","repository":{"id":160990385,"uuid":"634705442","full_name":"MaulingMonkey/ialloc","owner":"MaulingMonkey","description":"Allocator interface traits for Rust","archived":false,"fork":false,"pushed_at":"2024-01-26T14:25:40.000Z","size":578,"stargazers_count":2,"open_issues_count":19,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-14T04:22:41.482Z","etag":null,"topics":["alloc","allocator","ialloc","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaulingMonkey.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-05-01T00:57:32.000Z","updated_at":"2023-05-07T03:02:10.000Z","dependencies_parsed_at":"2024-01-26T12:12:57.549Z","dependency_job_id":"83951a73-ad71-4528-84c2-4a380328d537","html_url":"https://github.com/MaulingMonkey/ialloc","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaulingMonkey%2Fialloc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaulingMonkey%2Fialloc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaulingMonkey%2Fialloc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaulingMonkey%2Fialloc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaulingMonkey","download_url":"https://codeload.github.com/MaulingMonkey/ialloc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221820520,"owners_count":16886214,"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":["alloc","allocator","ialloc","rust"],"created_at":"2024-10-13T04:22:35.638Z","updated_at":"2024-10-28T11:12:49.670Z","avatar_url":"https://github.com/MaulingMonkey.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ialloc\n\nAllocator interface traits for Rust\n\n[![GitHub](https://img.shields.io/github/stars/MaulingMonkey/ialloc.svg?label=GitHub\u0026style=social)](https://github.com/MaulingMonkey/ialloc)\n[![crates.io](https://img.shields.io/crates/v/ialloc.svg)](https://crates.io/crates/ialloc)\n[![docs.rs](https://docs.rs/ialloc/badge.svg)](https://docs.rs/ialloc)\n[![unsafe: very](https://img.shields.io/badge/unsafe-very-red.svg)](https://github.com/MaulingMonkey/ialloc/search?q=unsafe+path%3Ars)\n[![License](https://img.shields.io/crates/l/ialloc.svg)](https://github.com/MaulingMonkey/ialloc)\n[![Build Status](https://github.com/MaulingMonkey/ialloc/workflows/Rust/badge.svg)](https://github.com/MaulingMonkey/ialloc/actions?query=workflow%3Arust)\n\n## Raison d'être\n*   Why not [`core::alloc::Allocator`](https://doc.rust-lang.org/core/alloc/trait.Allocator.html) / [`allocator_api`](https://github.com/rust-lang/rust/issues/32838)?\n    *   7+ years unstabilized and counting.\n    *   I want container allocations this decade, thanks!\n    *   We can aim to be compatible and interopable with it, if/when it stabilizes, or via separate nightly crates.\n*   Why not [`core::alloc::GlobalAlloc`](https://doc.rust-lang.org/core/alloc/trait.GlobalAlloc.html)?\n    *   Win32 [`FreeSid`](https://learn.microsoft.com/en-us/windows/win32/api/securitybaseapi/nf-securitybaseapi-freesid)\n        has no equivalent arbitrary allocation function to implement\n        [`GlobalAlloc::alloc`](https://doc.rust-lang.org/core/alloc/trait.GlobalAlloc.html#tymethod.alloc) with.\n    *   \u003ccode\u003e[bgfx](https://github.com/bkaradzic/bgfx#readme)::[alloc](https://bkaradzic.github.io/bgfx/bgfx.html#bgfx::alloc__uint32_t)\u003c/code\u003e\n        has no equivalent arbitrary free function to implement\n        [`GlobalAlloc::dealloc`](https://doc.rust-lang.org/core/alloc/trait.GlobalAlloc.html#tymethod.dealloc) with.\n    *   Split alloc/free/realloc traits will help avoid bugs and misuse!\n    *   That said, we can aim to be compatible and interopable with it.\n*   Rust-style traits are annoying to adapt to C-style allocators.  This provides more C-friendly traits as options.\n\n## Out of scope\n*   NUMA?  Although ask again later.\n*   Physical GPU memory allocation, probably.  Might warrant a related crate?\n*   ID/handle allocation, perhaps.  Might warrant a related crate?\n\n\n\n## License\n\nLicensed under either of\n\n* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n* MIT license ([LICENSE-MIT](LICENSE-MIT) or \u003chttp://opensource.org/licenses/MIT\u003e)\n\nat your option.\n\n\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaulingmonkey%2Fialloc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaulingmonkey%2Fialloc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaulingmonkey%2Fialloc/lists"}