ghost-collections
qcell
ghost-collections | qcell | |
---|---|---|
8 | 2 | |
175 | 342 | |
- | - | |
1.8 | 4.5 | |
almost 3 years ago | 9 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.
qcell
-
QCell 0.5.0 release, with no_std support
An unsoundness issue in TCell and TLCell was discovered and fixed by GitHub user steffahn. This is due to Rust TypeId taking into account the lifetime, i.e. you get a different type-id for the same type with different lifetimes, and Rust will automatically cast between them. The solution is to force invariance with some type voodoo. This is a weird corner of Rust I'd never understood before. Ideally std::any::TypeId docs should be improved. (This bug does not affect the safety of correct use of the crate, but fixing it blocks a malicious coder from getting potential unsoundness through a code review.)
-
GhostCell: Separating Permissions from Data in Rust
This is slightly unrelated, but this thread made me dig up my own code that I was writing which was going to be essentially the same as the QCell crate, until I discovered that the QCell crate exists, at which point I stopped working on it and contributed to QCell instead (this PR).
What are some alternatives?
pasts - Minimal and simpler alternative to the futures crate.
3D-Cellular-Automata-WGPU - 3d Cellular Automata using WGPU in Rust (for the web and using compute shaders)
static-rc - Compile-time reference counting
advisory-db - Security advisory database for Rust crates published through crates.io
cargo-geiger - Detects usage of unsafe Rust in a Rust crate and its dependencies.
rust - Empowering everyone to build reliable and efficient software.
orz - a high performance, general purpose data compressor written in the crab-lang
samsara - a reference-counting cycle collection library in rust
nomicon - The Dark Arts of Advanced and Unsafe Rust Programming
deno - A modern runtime for JavaScript and TypeScript.
rust - Rust for the xtensa architecture. Built in targets for the ESP32 and ESP8266
alacritty - A cross-platform, OpenGL terminal emulator.