Skip to content

bpc2003/mdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mdb

mdb is a simple embedded key-value database written in C.

Table of Contents

Installation

In order to install mdb clone this repository then run:
sudo make install

Reference

There are four basic commands in mdb:

  • exit: exits the program
  • GET: gets a given key-value pair from a given object
  • SET: sets a given key-value pair in a given object
  • DEL: deletes a given key-value pair from a given object

Syntax

The basic layout of a command looks like this:
cmd s/params/

  • cmd represents the command you're trying to execute
  • s represents the selector.
    If s is a number, it will execute the command on that specific object.
    If s is an * it will execute the command on every object.
  • /params/ represents any parameters
    that the command may need to execute properly.
    All parameters are separated by a /.

Examples:

  • GET * - gets every key-value pair from every object.
  • SET 0/name:John - sets the key name to the value John in object 0.
  • DEL */name - deletes every key name from every object.

API Reference

There are six functions and two types in mdb.h

Types:

  • tabidx_t: represents a single key-value pair in an object.
  • tablist_t: represents a single object.

Functions:

  • readdb: takes a filename and returns a tablist array
    if the file doesn't exist it will return an empty tablist array
    if readdb fails in any other way it will return NULL.
  • writedb: takes a filename and tablist array
    writedb writes the given tablist array to a file.
  • getkeys: takes a tablist array and index
    getkeys finds every single key-value pair in a given tablist
    and returns an integer array with the indexes of each key-value pair.
  • getkey: takes a tablist array, index, and key
    getkey finds a key-value pair from a given tablist
    if it can't find the key-value pair it will return an empty tabidx.
  • setkey: takes a pointer to a tablist array, an index, and a key-value pair
    setkey sets a given key-value pair in a given object, if a given key already exists
    it will overwrite the value set in that key.
    If setkey is successful it will return 0.
  • delkey: takes a tablist array, an index, and a key
    delkey deletes the given key-value pair from the given object
    if successful it will return 0.

Removal

In order to remove mdb run:
sudo make remove
or run:
sudo make uninstall

License

This software is licensed under the BSD-2-Clause License

Releases

No releases published

Packages

No packages published