Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
DEMO
Loading...
Searching...
No Matches
mmap_reader.hpp File Reference

Memory-mapped I/O reader for Parquet files. More...

#include "signet/types.hpp"
#include "signet/error.hpp"
#include "signet/schema.hpp"
#include "signet/column_reader.hpp"
#include "signet/thrift/compact.hpp"
#include "signet/thrift/types.hpp"
#include "signet/encoding/rle.hpp"
#include "signet/encoding/dictionary.hpp"
#include "signet/encoding/delta.hpp"
#include "signet/encoding/byte_stream_split.hpp"
#include "signet/compression/codec.hpp"
#include "signet/compression/snappy.hpp"
#include <cstdint>
#include <cstring>
#include <filesystem>
#include <stdexcept>
#include <string>
#include <vector>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>

Go to the source code of this file.

Classes

class  signet::forge::MmapReader
 Low-level memory-mapped file handle. More...
 
class  signet::forge::MmapParquetReader
 
struct  signet::forge::MmapParquetReader::RowGroupInfo
 Summary information for a single row group. More...
 

Namespaces

namespace  signet
 
namespace  signet::forge
 
namespace  signet::forge::detail_mmap_reader
 

Functions

uint32_t signet::forge::detail_mmap_reader::crc32 (const void *data, size_t length) noexcept
 
expected< size_t > signet::forge::validate_mmap_page_value_count (int64_t num_values, const char *context)
 

Detailed Description

Memory-mapped I/O reader for Parquet files.

Provides two classes:

  • MmapReader – Low-level memory-mapped file handle (mmap/munmap).
  • MmapParquetReader – Full Parquet reader backed by MmapReader.

The mmap reader avoids the full-file copy that ParquetReader::open() does (std::vector allocation + read), instead mapping the file directly into the process address space. For PLAIN-encoded columns this enables true zero-copy reads: ColumnReader points directly into mmap'd memory.

Platform support:

  • macOS / Linux: mmap(2) + madvise(MADV_SEQUENTIAL)
  • Windows: not yet implemented (static_assert at compile time)

Definition in file mmap_reader.hpp.