rust-mmap
rust-mmap copied to clipboard
Combining Forces
Hi there,
I wrote a Rust mmap wrapper a few months ago, before you had published your crate on crates.io. My implementation is largely the same as yours, the main differences seem to be that I have more support for high-level Rust traits that make it easy and safe to work with (e.g. exposing &mut [u8]
instead of *mut u8
), but I expose fewer non-cross platform options. It's fully cross platform and tested on Linux, OS X, and Windows. Check out the API here.
I don't see much need for two crates doing essentially the same thing, so I wanted to know if you would be interested in teaming up on this effort, and potentially merging the projects. I'm pretty open particulars; my only real concern is that there is a go-to high quality mmap library for Rust, and I'd prefer if we didn't duplicate effort!
@rbranson ping, I'd like to get your thoughts on this. Thanks!
@danburkert looks like you've done a great job on this other project. Acknowledge that my stuff is pretty unsafe. What do you think are next steps?
@rbranson would it be acceptable to add you as a committer on my repo, and have you add me as an owner on crates.io? The next step is that I would push a version of my repo to crates.io with a minor version bump.
I'm a bit worried about breaking any projects that depend on the current version of the crate. Projects can always pin the version to the current one, but I may take a look with cargo-crusader to see how bad breakage will be before publishing a new version. Transitioning to the new API should be straightforward for downstream dependencies, the only feature mismatch that I can see that is not platform-specific is creating a mmap with offsets, but I've been working on that.
You have laid claim on a very good name for a memory mapped file crate (mmap
), but you don't seem to have the time to maintain it. If you could at least allow others like @danburkert to make mmap
continue on as a maintained library, it would help this crate live on, and would take minimal effort from you.
It looks like there are five crates depending on mmap
right now:
- block_allocator - anonymous mmap
- context - anonymous stack mmap
- coroutine - anonymous stack mmap
- wayland-kbd - file-backed mmap
All of these use cases are covered right now by my version (stack support will be landing soon), so it should be a straightforward update across the board.
@retep998 your response comes across as very rude. This is a volunteer-based community, please try to treat others with respect for their time and effort.
I am waiting on danburkert's version of mmap to become public so I can push up code. But likewise, I am patient with @rbranson response. I am sure this will be resolved soon.