Skip to content

Crystal wrapper for the Lightning Memory-Mapped Database (LMDB)

License

Notifications You must be signed in to change notification settings

RomainFranceschini/crystal-lmdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crystal-lmdb

Crystal wrapper around the Lightning Memory-Mapped Database (LMDB).

LMDB is a fast embedded transactional database with the following properties:

  • Key/value store.
  • Ordered map interface (keys are lexicographically sorted).
  • Reader/writers transactions that don't block each other.
  • ACID compliant, with nested transactions.

This wrapper tries to add as little overhead as possible, by avoiding copy and allocations whenever possible.

Installation

Requirements

  • Install LMDB >= 0.9.23 on your system and makes sure the library can be found by the linker.

Shard

  1. Add the dependency to your shard.yml:
dependencies:
  lmdb:
    github: rumenzu/crystal-lmdb
    version: 0.1.0
  1. Run shards install

Usage

require "lmdb"

LMDB.open("./tmp/simpledb") do |env|
  env.transaction do
    env.open_db do |db|
      db.put('a', 'a'.ord)
      db.put('b', 'b'.ord)
      db.put('c', 'c'.ord)
    end
  end
end

See also the examples folder.

Contributing

  1. Fork it (https://github.com/your-github-user/crystal-lmdb/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

About

Crystal wrapper for the Lightning Memory-Mapped Database (LMDB)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published