[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ANN] guile-wiredtiger 0.6
From: |
Amirouche |
Subject: |
[ANN] guile-wiredtiger 0.6 |
Date: |
Sat, 27 May 2017 11:12:34 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 |
Héllo!
I am pleasedto announce the immediate availability of guile-wiredtiger.
A database system for guile.
wiredtiger in a few bullet points:
- ACID
- NoSQL (in the sens it has no (sugar) SQL DSL)
- networkless
- automatic index
- multithread support
- ordered key/value store
- it requires no setup (like sqlite)
- it does prefix compression (nice for timeseries)
- it does compression
- it does encryption
It's similar to leveldb, rocksdb and bsddb. The creator of wiredtiger
did previously code bsddb now part of oracle.
It only works on 64bit systems.
At the very core, it's a configurable ordered key/value store, column
aware, with global transactions.
It's not cache database like REDIS.
It's more powerful than RDBMS model and can implement it (demonstrated
in [1]).
[1]
http://hyperdev.fr/notes/somewhat-relational-database-library-using-wiredtiger.html
The low level API allows to create tables (!) with two kind of columns:
key columns and value columns (somewhat like cassandra). Then you can
lookup entries in the database using the key with search procedures.
There is two kinds of search procedure. One does exact match of the
whole key columns, the other does an approximate match, where you lookup
for a key prefix (This is actuallly very useful). Once you have a
pointer to an entry in the table you can navigate it quickly using next
and previous procedures (remember the table is ordered).
There is higher level abstractions like a graphdb with gremlin-like
querying, a feature space with microkanren querying and an inverted
index for looking up words in documents.
You can get it using the following command:
git clone https://framagit.org/a-guile-mind/guile-wiredtiger.git
I created several toy projects using this library, actually all my work
is based on this library:
- https://framagit.org/a-guile-mind/culturia
- https://framagit.org/a-guile-mind/hyper
- https://framagit.org/a-guile-mind/nanoblog/
- https://framagit.org/a-guile-mind/azul
And various posts:
- http://hyperdev.fr/notes/getting-started-with-guile-wiredtiger.html
- http://hyperdev.fr/notes/getting-started-with-guile-uav-database.html
-
http://hyperdev.fr/notes/somewhat-relational-database-library-using-wiredtiger.html
-
http://hyperdev.fr/notes/a-graph-based-movie-recommender-engine-using-guile-scheme.html
The project is far from perfect as it's still not packaged and the
document is not up to the Guile standard but it's usable.
Happy hacking!
- [ANN] guile-wiredtiger 0.6,
Amirouche <=