unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Amirouche <amirouche@hypermove.net>
To: "guile-user@gnu.org" <guile-user@gnu.org>
Subject: [ANN] guile-wiredtiger 0.6
Date: Sat, 27 May 2017 11:12:34 +0200	[thread overview]
Message-ID: <6cee0f96-a0ed-5129-7a70-374162221c12@hypermove.net> (raw)

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!



             reply	other threads:[~2017-05-27  9:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-27  9:12 Amirouche [this message]
2017-05-27  9:14 ` [ANN] guile-wiredtiger 0.6 Amirouche
2017-05-28  5:46   ` Nala Ginrut
2017-05-28  9:40     ` Amirouche Boubekki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6cee0f96-a0ed-5129-7a70-374162221c12@hypermove.net \
    --to=amirouche@hypermove.net \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).