Proposed standard C++ low level file i/o library

49 views
Skip to first unread message

Niall Douglas

unread,
Apr 4, 2018, 4:16:08 AM4/4/18
to pmem
For the information of some on this group, please find attached draft 1 of my low level file i/o library proposal which I will be presenting at the June C++ standards meeting for standardisation.
It provides:
  • Bare metal performance, no exception throws, no malloc, no mutexes, no threads. Functions are deliberately designed to maximally inline bespoke editions of themselves so overhead is usually unmeasurable over the syscall.
  • Zero whole system memory copy scatter-gather file i/o, including no memory copying of paths.
  • First class support for persistent memory storage.
  • Direct support for the kernel page cache.
  • Race free filesystem.
  • Asynchronous and synchronous file i/o.
  • Comprehensive suite of filesystem mutual exclusion facilities i.e. concurrent modification locks.
  • Deep integration with C++ 20, including Filesystem, Concepts, Coroutines, Ranges.
  • Platform for building out a suite of generic filesystem algorithms with which to replace the venerable iostreams with a v2 modern alternative. Papers on that are forthcoming, but I will essentially be proposing a new Study Group to build out a state of the art standard data persistence layer for C++.
Comments are welcome.

Niall

20180404 DGGGGr0 Low level file io library draft 1.pdf
Reply all
Reply to author
Forward
0 new messages