ghost-collections
static-rc
ghost-collections | static-rc | |
---|---|---|
8 | 4 | |
175 | 417 | |
- | - | |
1.8 | 0.0 | |
almost 3 years ago | 12 months ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ghost-collections
-
`alternator` gives an async function access to data but gives it back on await points
Apart from that, I goofed around and implemented some collections on top, to test the ergonomics.
-
Is it possible to solve LeetCode problem#141 Linked List Cycle using Rust?
I read a while ago about a paper on a concept called GhostCell, and i believe it solves this problem in safe rust with zero runtime overhead. I just found this implementation, but I didn't have time to read it: https://github.com/matthieu-m/ghost-collections/blob/master/src/linked_list.rs Anyway, from my understanding, if you want to implement some sort of non trivial data structure in rust efficiency, you have to use a little bit of unsafe code. I believe this isn't the case thanks to GhostCell (if my understanding of the problem it aims to solve is correct)
-
std::map::find_if()?
In the tripod_tree container -- just a binary tree, really -- I exposed a cursor modeled after Rust's LinkedList Cursor.
-
Why can't the compiler implement RefCell, and have it be a compile-time issue?
GhostCell is powerful enough to implement doubly linked lists in safe Rust which is quite a feat. https://github.com/matthieu-m/ghost-collections
-
GhostCell: Separating Permissions from Data in Rust
May I interest you in https://github.com/matthieu-m/ghost-collections ?
-
A Firehose of Rust, for busy people who know some C++
It's fairly complicated: https://github.com/matthieu-m/ghost-collections/blob/master/src/linked_list.rs
-
The Rustonomicon
> I think linked lists are a great example of something that causes Rust's ownership model to fall apart. I've seen it done with tradeoffs, but it's something that you're best off implementing with pointers and unsafe blocks
It's worth checking https://plv.mpi-sws.org/rustbelt/ghostcell/ and https://github.com/matthieu-m/ghost-collections for an alternate approach that's currently being worked on.
Quite non-intuitive and it has yet to be proven 100% safe, plus it doesn't actually obviate everything you might want to do w/ potentially-aliased pointers, meaning that some desirable patterns are still off-limits - but it has the best chance of working out so far.
-
Is it possible to write overhead-free cyclic data-structures in safe, stable Rust?
I managed to implement the basic operations of the LinkedList this way, as well as a full Cursor, then I hit a wall.
static-rc
- StaticRc: Compile-Time Reference Counting
-
Which important features from C/C++ are missing in Rust
It can... it's not too ergonomic though because you need to manually specify the size of the return array as it cannot be the result of an expression. (See static-rc for an example of usage)
-
Data Modelling in Rust Continued
You can also combine GhostCell with StaticRc (compile time rc) and avoid runtime overhead.
-
Is it possible to write overhead-free cyclic data-structures in safe, stable Rust?
I submitted a pull request for this.
What are some alternatives?
qcell - Statically-checked alternatives to RefCell and RwLock
rust - Empowering everyone to build reliable and efficient software.
pasts - Minimal and simpler alternative to the futures crate.
rfcs - RFCs for changes to Rust
cargo-geiger - Detects usage of unsafe Rust in a Rust crate and its dependencies.
wg-allocators - Home of the Allocators working group: Paving a path for a standard set of allocator traits to be used in collections!
orz - a high performance, general purpose data compressor written in the crab-lang
bevy - A refreshingly simple data-driven game engine built in Rust
nomicon - The Dark Arts of Advanced and Unsafe Rust Programming
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266