A fast and reliable embedded key-value ACID storage engine without WAL.
Version 0.15.0.98 (2026-09-30T12:43:01Z)
Loading...
Searching...
No Matches
mdbx Namespace Reference

The libmdbx C++ API namespace. More...

Namespaces

namespace  allocation_aware_details

Classes

class  exception_thunk
 Transfers C++ exceptions thru C callbacks. More...
class  error
 Implements error information and throwing corresponding exceptions. More...
class  exception
 Base class for all libmdbx's exceptions that correspond to libmdbx errors. More...
class  fatal
 Fatal exception that leads to termination anyway in dangerous unrecoverable cases. More...
struct  bad_map_id
struct  bad_transaction
struct  bad_value_size
struct  db_corrupted
struct  db_full
struct  db_invalid
struct  db_too_large
struct  db_unable_extend
struct  db_version_mismatch
struct  db_wanna_write_for_recovery
struct  incompatible_operation
struct  internal_page_full
struct  internal_problem
struct  key_exists
struct  key_mismatch
struct  max_maps_reached
struct  max_readers_reached
struct  multivalue
struct  no_data
struct  not_found
struct  operation_not_permitted
struct  permission_denied_or_not_writeable
struct  reader_slot_busy
struct  remote_media
struct  something_busy
struct  thread_mismatch
struct  transaction_full
struct  transaction_overlapping
struct  duplicated_lck_file
struct  dangling_map_id
struct  transaction_ousted
struct  mvcc_retarded
struct  laggard_reader
struct  slice
 References a data located outside the slice. More...
struct  value_result
 Combines data slice with boolean flag to represent result of certain operations. More...
struct  pair
 Combines pair of slices for key and value to represent result of certain operations. More...
struct  pair_result
 Combines pair of slices for key and value with boolean flag to represent result of certain operations. More...
struct  to_hex
 Hexadecimal encoder which satisfy SliceTranscoder concept. More...
struct  to_base58
 Base58 encoder which satisfy SliceTranscoder concept. More...
struct  to_base64
 Base64 encoder which satisfy SliceTranscoder concept. More...
struct  from_hex
 Hexadecimal decoder which satisfy SliceTranscoder concept. More...
struct  from_base58
 Base58 decoder which satisfy SliceTranscoder concept. More...
struct  from_base64
 Base64 decoder which satisfy SliceTranscoder concept. More...
struct  default_capacity_policy
struct  buffer_tag
 Type tag for delivered buffer template classes. More...
class  buffer
 The chunk of data stored inside the buffer or located outside it. More...
struct  buffer_pair_spec
class  cache_entry
 Cache entry for the transparent read-your-writes caching, see txn::get_cached() and mdbx_cache_get(). More...
struct  map_handle
 A handle for an individual table (aka key-value space, maps or sub-database) in the environment. More...
class  env
 Unmanaged database environment. More...
class  env_managed
 Managed database environment. More...
class  txn
 Unmanaged database transaction. More...
class  txn_managed
 Managed database transaction. More...
class  cursor
 Unmanaged cursor. More...
class  cursor_managed
 Managed cursor. More...

Concepts

concept  MutableByteProducer
concept  ImmutableByteProducer
concept  SliceTranscoder

Typedefs

using byte = char8_t
 The byte-like type that don't presumes aliases for pointers as does the char.
using version_info = ::MDBX_version_info
 libmdbx version information,
using build_info = ::MDBX_build_info
 libmdbx build information
using legacy_allocator = ::std::string::allocator_type
 Legacy allocator but it is recommended to use polymorphic_allocator.
using polymorphic_allocator = ::std::pmr::string::allocator_type
 Default polymorphic allocator for modern code.
using default_allocator = polymorphic_allocator
using txnid = uint64_t
 Transaction ID and MVCC-snapshot number.
template<class ALLOCATOR = default_allocator>
using string = ::std::basic_string<char, ::std::char_traits<char>, ALLOCATOR>
 Default single-byte string.
using filehandle = ::mdbx_filehandle_t
using path = ::mdbx::filesystem::path
using path_string = ::mdbx::filesystem::path::string_type
using path_char = path_string::value_type
using duration = ::std::chrono::duration<unsigned, ::std::ratio<1, 65536>>
 Duration in 1/65536 units of second.
using comparator = ::MDBX_cmp_func
using geometry = env::geometry
 Shorthand for env::geometry.
using reclaiming_options = env::reclaiming_options
 Shorthand for env::reclaiming_options.
using operate_options = env::operate_options
 Shorthand for env::operate_options.
using operate_parameters = env::operate_parameters
 Shorthand for env::operate_parameters.
using create_parameters = env_managed::create_parameters
 Shorthand for env_managed::create_parameters.
using default_buffer = buffer<default_allocator, default_capacity_policy>
 Default buffer.
template<typename BUFFER>
using buffer_pair = buffer_pair_spec<typename BUFFER::allocator_type, typename BUFFER::reservation_policy>
 Combines pair of buffers for key and value to hold an operands for certain operations.
using default_buffer_pair = buffer_pair<default_buffer>
 Default pair of buffers.

Enumerations

enum  loop_control { continue_loop = 0 , exit_loop = INT32_MIN }
 Loop control constants for readers enumeration functor and other cases. More...
enum class  key_mode { key_mode::usual = MDBX_DB_DEFAULTS , key_mode::reverse = MDBX_REVERSEKEY , key_mode::ordinal = MDBX_INTEGERKEY , key_mode::msgpack = -1 }
 Kinds of the keys and corresponding modes of comparing it. More...
enum class  value_mode {
  value_mode::single = MDBX_DB_DEFAULTS , value_mode::multi = MDBX_DUPSORT , value_mode::multi_reverse = MDBX_DUPSORT | MDBX_REVERSEDUP , value_mode::multi_samelength = MDBX_DUPSORT | MDBX_DUPFIXED ,
  value_mode::multi_ordinal = MDBX_DUPSORT | MDBX_DUPFIXED | MDBX_INTEGERDUP , value_mode::multi_reverse_samelength , value_mode::msgpack = -1
}
 Kind of the values and sorted multi-values with corresponding comparison. More...
enum  put_mode { insert_unique = MDBX_NOOVERWRITE , upsert = MDBX_UPSERT , update = MDBX_CURRENT }
 Key-value pairs put mode. More...

Functions

constexpr const version_info & get_version () noexcept
 Returns libmdbx version information.
constexpr const build_info & get_build () noexcept
 Returns libmdbx build information.
LIBMDBX_API void throw_too_small_target_buffer ()
LIBMDBX_API void throw_max_length_exceeded ()
LIBMDBX_API void throw_out_range ()
LIBMDBX_API void throw_allocators_mismatch ()
LIBMDBX_API void throw_bad_value_size ()
LIBMDBX_API void throw_incomparable_cursors ()
uint64_t key_from_jsonInteger (int64_t json_integer) noexcept
 Value-to-Key functions to avoid using custom comparators.
uint64_t key_from_double (double ieee754_64bit) noexcept
uint64_t key_from_ptrdouble (const double *const ieee754_64bit) noexcept
uint32_t key_from_float (float ieee754_32bit) noexcept
uint32_t key_from_ptrfloat (const float *const ieee754_32bit) noexcept
uint64_t key_from_int64 (int64_t i64) noexcept
uint32_t key_from_int32 (int32_t i32) noexcept
double double_from_key (const slice &key) noexcept
 Key-to-Value functions to avoid using custom comparators.
float float_from_key (const slice &key) noexcept
int32_t int32_from_key (const slice &key) noexcept
int64_t int64_from_key (const slice &key) noexcept
int64_t jsonInteger_from_key (const slice &key) noexcept
inline ::std::string dump_val (const slice &value)
 Dumps the given value to a string: as-is when printable (all bytes in the range 0x20..0x7E), otherwise as a hexadecimal dump.
MDBX_CXX01_CONSTEXPR_ENUM bool is_usual (key_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_ordinal (key_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_samelength (key_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_reverse (key_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_msgpack (key_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_usual (value_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_multi (value_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_ordinal (value_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_samelength (value_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_reverse (value_mode mode) noexcept
MDBX_CXX01_CONSTEXPR_ENUM bool is_msgpack (value_mode mode) noexcept
comparator default_comparator (key_mode mode) noexcept
comparator default_comparator (value_mode mode) noexcept
inline ::std::string ratio2digits (uint64_t numerator, uint64_t denominator, int precision)
 Converts a fraction to a string of decimal digits without using floating-point operations.
inline ::std::string ratio2percents (uint64_t value, uint64_t whole)
 Converts a fraction to a percentage string without using floating-point operations.
bool is_readahead_reasonable (size_t volume, intptr_t redundancy)
 Quickly finds out whether readahead is reasonable for the given data volume and redundancy.
MDBX_cmp_func get_datacmp (MDBX_db_flags_t flags)
 Returns the built-in data (value) comparator for the given table flags, which is useful as a fallback when implementing custom comparators.
int setup_debug (MDBX_log_level_t log_level=MDBX_LOG_DONTCHANGE, MDBX_debug_flags_t debug_flags=MDBX_DBG_DONTCHANGE, MDBX_debug_func logger=nullptr)
 Sets up the global log-level, debug options and logger.
int setup_debug_nofmt (MDBX_log_level_t log_level, MDBX_debug_flags_t debug_flags, MDBX_debug_func_nofmt logger, char *logger_buffer, size_t logger_buffer_size)
 Sets up the global log-level, debug options and a logger for plain preformatted messages.
void set_panic (MDBX_panic_func func)
 Sets a callback for assertion failures, called before printing the message and aborting.
constexpr bool operator== (const error &a, const error &b)
constexpr bool operator!= (const error &a, const error &b)
constexpr bool operator== (const slice &a, const slice &b)
constexpr bool operator< (const slice &a, const slice &b)
constexpr bool operator> (const slice &a, const slice &b)
constexpr bool operator<= (const slice &a, const slice &b)
constexpr bool operator>= (const slice &a, const slice &b)
constexpr bool operator!= (const slice &a, const slice &b)
template<class ALLOCATOR, typename CAPACITY_POLICY>
inline ::std::ostream & operator<< (::std::ostream &out, const buffer< ALLOCATOR, CAPACITY_POLICY > &it)
 MDBX_EXTERN_API_TEMPLATE (LIBMDBX_API_TYPE, buffer< legacy_allocator, default_capacity_policy >)
 MDBX_EXTERN_API_TEMPLATE (LIBMDBX_API_TYPE, buffer< polymorphic_allocator, default_capacity_policy >)
template<class ALLOCATOR, class CAPACITY_POLICY, MutableByteProducer PRODUCER>
buffer< ALLOCATOR, CAPACITY_POLICY > make_buffer (PRODUCER &producer, const ALLOCATOR &alloc)
template<class ALLOCATOR, class CAPACITY_POLICY, ImmutableByteProducer PRODUCER>
buffer< ALLOCATOR, CAPACITY_POLICY > make_buffer (const PRODUCER &producer, const ALLOCATOR &alloc)
template<class ALLOCATOR, MutableByteProducer PRODUCER>
string< ALLOCATOR > make_string (PRODUCER &producer, const ALLOCATOR &alloc)
template<class ALLOCATOR, ImmutableByteProducer PRODUCER>
string< ALLOCATOR > make_string (const PRODUCER &producer, const ALLOCATOR &alloc)
constexpr bool operator== (const pair &a, const pair &b)
constexpr bool operator< (const pair &a, const pair &b)
constexpr bool operator> (const pair &a, const pair &b)
constexpr bool operator<= (const pair &a, const pair &b)
constexpr bool operator>= (const pair &a, const pair &b)
constexpr bool operator!= (const pair &a, const pair &b)
inline ::std::ostream & operator<< (::std::ostream &out, const to_hex &wrapper)
inline ::std::ostream & operator<< (::std::ostream &out, const to_base58 &wrapper)
inline ::std::ostream & operator<< (::std::ostream &out, const to_base64 &wrapper)
int compare_position_nothrow (const cursor &left, const cursor &right, bool ignore_nested=false)
int compare_position (const cursor &left, const cursor &right, bool ignore_nested=false)
ptrdiff_t estimate (const cursor &from, const cursor &to)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const slice &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const pair &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const pair_result &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const env::geometry::size &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const env::geometry &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const env::operate_parameters &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const env::mode &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const env::durability &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const env::reclaiming_options &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const env::operate_options &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const env_managed::create_parameters &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const MDBX_log_level_t &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const MDBX_debug_flags_t &)
LIBMDBX_API::std::ostream & operator<< (::std::ostream &, const error &)
inline ::std::ostream & operator<< (::std::ostream &out, const MDBX_error_t &errcode)

Variables

template<class ALLOCATOR = default_allocator, class CAPACITY_POLICY = default_capacity_policy>
class MDBX_MSVC_DECLSPEC_EMPTY_BASES buffer

Detailed Description

The libmdbx C++ API namespace.