shmcpp/README.md
2026-01-11 12:11:54 +08:00

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)