librdf.sqlite
librdf.sqlite copied to clipboard
♊️ Mirror of https://code.mro.name/mro/librdf.sqlite | 🛠 improved SQLite RDF triple store for Redland librdf
Improved SQLite RDF triple storage module for librdf.
Cross platform, plain C source file. Comes with a for those targeting iOS.
Inspired by the official sqlite store.
Usage
#include "rdf_storage_sqlite_mro.h"
....
librdf_world *world = librdf_new_world();
librdf_init_storage_sqlite_mro(world); // register storage factory
....
const char* options = "new='yes', contexts='no'";
librdf_storage *newStorage = librdf_new_storage(world, LIBRDF_STORAGE_SQLITE_MRO, file_path, options);
See e.g. in (my) http://purl.mro.name/ios/librdf.objc.
License
-
test/minunit.h
, Copyright (C) 2002 John Brewer, NO WARRANTY, - all others, Copyright (C) 2014-2015 Marcus Rohrmoser mobile Software, Human Rights License
Design Goals
Quality | very good | good | normal | irrelevant |
---|---|---|---|---|
Functionality | × | |||
Reliability | × | |||
Usability | × | |||
Efficiency | × | |||
Changeability | × | |||
Portability | × |
Currently 50% code and 99% runtime saving (for 100k triples).
- intense use of SQLite prepared statements and
bound values:
- no stringbuffers
- no strcpy/memcpy,
- no SQL escaping,
- re-use compiled statements where possible (at the cost of thread safety),
- as few SQL statements as possible (at the cost of some non-trivial ones),
- SQLite indexes (at the cost of larger DB files).