A crate to support Memory-Mapped Files for IPC on Windows. See https://skaye.blog for more info
RivenSkaye bc1e471beb le sigh
No JS in README.md makes sense, but sucks
2025-11-18 09:33:41 +01:00
.cargo Force private members in docs for reasons 2025-06-11 14:59:03 +02:00
.github/workflows run per package 2024-10-15 12:15:15 +02:00
.vscode progress? 2025-05-28 16:18:43 +02:00
winmmf Add codeberg badges 2025-11-03 11:42:10 +01:00
winmmf-ffi Add codeberg badges 2025-11-03 11:42:10 +01:00
.gitignore initial dump 2024-03-14 16:30:33 +01:00
.rustfmt.toml Finally heed that one deprecation warning 2024-10-09 14:38:26 +02:00
Cargo.toml update texts 2025-10-31 16:34:44 +01:00
LICENSE Commit MPL change 2024-06-17 11:09:38 +02:00
README.md le sigh 2025-11-18 09:33:41 +01:00
Roadmap.md Roadmap 2024-10-10 09:30:19 +02:00

WinMMF

View the source on Codeberg

This workspace aims to provide the main winmmf package as it exists on crates.io, but as additional crates built around it will be developed, they're organized in one place. As crates get added, this README will be updated.

Crates

  • winmmf, the actual Rust wrapper for Memory Mapped Files
  • winmmf-ffi, pub extern "system" API for using WinMMF from other languages

versioning

The crates here live in pretty standard semver. The only thing that stands out is that the workspace is major-versioned as a whole. Changes in WinMMF will cause all crates in the workspace to be bumped to the next version, and API breakage in WinMMF will make all of them get an indicated breaking change. If, however, other crates in the workspace are updated independently, their patch version will always increase.

MSRV

The MSRV is manually checked before releasing as of workspace version 0.2.1. This is done with the help of cargo-msrv. I might integrate it in CI at some point, but there are currently no plans to do so. MSRV testing and updating the Cargo.toml is done more often than I remember to edit this readme. To make sure your version of Rust is supported, check that file.

The listed MSRV at the time of writing: 1.82.

Supported platforms

This crate only supports Windows. Nothing else uses this mechanic for shared memory to the best of my knowledge and it sounds painful to even test it. If you find it works in other places, let me know and I'll list it!
If there's something you'd like to see changed, open an issue explaining why and it'll get looked at.

Architecture Officially Supported Works Notes
x86 Yes Yes Just Works™.
x86_64/AMD64 Yes Yes Just Works™.
ARM No hardware Maybe Have not tested this, nor do I have a system to test with. Contributors with Windows ARM machines wanted.
Other No Maybe I am not able to help support things I can't access. Community support would be welcome and listed here.

Tip

These crates might be usuable on cross toolchains using xwin and/or leveraging cargo-xwin. No warranties or guarantees are provided, but there is a willingness to provide support for this once this crate reaches a point of maturity and stability that allows for allocating resources towards this end.

License

All crates in this workspace are brought to you under the MPL-2.0. Contributions made will share this licensing unless explicitly stated otherwise. When stating other licensing on your work, please ensure it's compatible with the existing license. License texts can be found in the LICENSE file.

Coffee plug

If you like this or any of my other projects, consider fueling the caffeine to code pipeline with some selfless generosity. Coffee is just an example of what a gift might fund; I might also invest it in hardware or put it towards hosting/infra bills.
ko-fi