1.6 KiB
1.6 KiB
shmcpp
A modern C++20 cross-platform shared memory library with RAII resource management.
Features
- Cross-platform support (Windows/POSIX)
- Modern C++20 with concepts
- Automatic resource cleanup via RAII
- Type-safe interface
Requirements
- C++20 compatible compiler
- CMake 4.0 or higher
Building
mkdir build && cd build
cmake ..
cmake --build .
Quick Start
#include <shmcpp/shared_memory.hpp>
// Create shared memory
auto shm = shmcpp::SharedMemory::create("my_shm", 1024);
// Open existing shared memory
auto shm = shmcpp::SharedMemory::open("my_shm");
// Map memory region
auto view = shm.map(0, 1024);
// Get size
std::size_t size = shm.size();
Note: Direct memory access APIs are not provided. Data structures for safe memory operations will be implemented in future releases.
API Overview
SharedMemory
-
static SharedMemory create(const std::string& name, std::size_t size)- Creates a new shared memory region
-
static SharedMemory open(const std::string& name)- Opens an existing shared memory region
-
MappedView map(std::size_t offset, std::size_t length)- Maps a memory region for access
-
std::size_t size() const noexcept- Returns the size of shared memory
MappedView
- RAII wrapper for mapped memory region
- Automatically unmaps on destruction
- Move-only type (non-copyable)
Platform Support
- Windows: Win32 API (CreateFileMapping/MapViewOfFile)
- Linux/Unix: POSIX shared memory (shm_open/mmap)
Integration
Link against the shmcpp static library:
target_link_libraries(your_target PRIVATE shmcpp)