LwMQ Storage API

LwMQ provides a key-value storage API that allows applications to create and manage on-disk key-value stores for various purposes such as caching, storing application state, and more.

The storage API also includes fast LZ4-based functions for compressing and decompressing data buffers, which can be used in conjunction with the key-value storage or independently.

The LwMQ Storage component is based, in part, on a modified version of LMDB, customized for use as part is the LwMQ Storage API.

Notable modifications include support for NTFS sparse files and alternate data streams.

LMDB is licensed under the OpenLDAP Public License.

C and C++ Header File

#include <api-lwmq-storage.h>

Binaries

api-lwmq-storage-1-0.dll

Dependencies

api-lwmq-hash-1-0.dll

Overview

Types

LMQ_KVSTORE

Key-Value Storage Functions

LMQAPI
LmqOpenKvStore (
    PCWSTR Pathname,
    UINT32 CreationFlags,
    SIZE_T MaximumSizeBytes,
    BOOL ReadOnly,
    PLMQ_KVSTORE KvStore
    );

LMQAPI
LmqAddKvStoreEntry (
    LMQ_KVSTORE KvStore,
    PCLMQ_KEY Key,
    PVOID Data,
    SIZE_T DataSize,
    LMQ_COMPRESSIONTYPE CompressionType
    );

LMQAPI
LmqLookupKvStoreEntry (
    LMQ_KVSTORE KvStore,
    PCLMQ_KEY Key,
    PSIZE_T DataSize
);

LMQAPI
LmqRetrieveKvStoreEntry (
    LMQ_KVSTORE KvStore,
    PCLMQ_KEY Key,
    PVOID Data,
    PSIZE_T DataSize
    );

LMQAPI
LmqDeleteKvStoreEntry (
    LMQ_KVSTORE KvStore,
    PCLMQ_KEY Key
    );

LMQAPI
LmqCloseKvStore (
    PLMQ_KVSTORE KvStore
    );