#mmap #io #file #memory-map

memmap

Cross-platform Rust API for memory-mapped file IO

14 releases

0.7.0 Sep 20, 2018
0.6.2 Jan 6, 2018
0.6.1 Nov 9, 2017
0.5.2 Feb 26, 2017
0.2.2 Nov 7, 2015

#2 in Memory management

Download history 14698/week @ 2018-12-20 15726/week @ 2018-12-27 18842/week @ 2019-01-03 20628/week @ 2019-01-10 20264/week @ 2019-01-17 20113/week @ 2019-01-24 20722/week @ 2019-01-31 22707/week @ 2019-02-07 21104/week @ 2019-02-14 21410/week @ 2019-02-21 21506/week @ 2019-02-28 22421/week @ 2019-03-07 21155/week @ 2019-03-14 19779/week @ 2019-03-21 19422/week @ 2019-03-28

69,771 downloads per month
Used in 470 crates (124 directly)

MIT/Apache

50KB
945 lines

memmap

A Rust library for cross-platform memory mapped IO.

Build Status Windows Build Status Documentation Crate

Features

  • file-backed memory maps
  • anonymous memory maps
  • synchronous and asynchronous flushing
  • copy-on-write memory maps
  • read-only memory maps
  • stack support (MAP_STACK on unix)
  • executable memory maps
  • huge page support

Platforms

memmap should work on any platform supported by libc. memmap requires Rust stable 1.13 or greater.

memmap is continuously tested on:

  • x86_64-unknown-linux-gnu (Linux)
  • i686-unknown-linux-gnu
  • x86_64-unknown-linux-musl (Linux MUSL)
  • x86_64-apple-darwin (OSX)
  • i686-apple-darwin
  • x86_64-pc-windows-msvc (Windows)
  • i686-pc-windows-msvc
  • x86_64-pc-windows-gnu
  • i686-pc-windows-gnu

memmap is continuously cross-compiled against:

  • arm-linux-androideabi (Android)
  • aarch64-unknown-linux-gnu (ARM)
  • arm-unknown-linux-gnueabihf
  • mips-unknown-linux-gnu (MIPS)
  • x86_64-apple-ios (iOS)
  • i686-apple-ios

License

memmap is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT for details.

Copyright (c) 2015 Dan Burkert.

Dependencies

~579KB

  • unix libc 0.2
  • windows winapi 0.3+basetsd+handleapi+memoryapi+minwindef+std+sysinfoapi