minigraf 1.0.0

Zero-config, single-file, embedded graph database with bi-temporal Datalog queries
Documentation
#include "minigraf.h"
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    MiniGrafDb *db = minigraf_open_in_memory();
    if (!db) {
        fprintf(stderr, "failed to open database\n");
        return 1;
    }

    char *result = minigraf_execute(db, "(transact [[:alice :name \"Alice\"] [:alice :age 30]])");
    if (!result) {
        fprintf(stderr, "transact error: %s\n", minigraf_last_error(db));
        minigraf_close(db);
        return 1;
    }
    minigraf_string_free(result);

    char *query = minigraf_execute(db, "(query [:find ?e ?name :where [?e :name ?name]])");
    if (!query) {
        fprintf(stderr, "query error: %s\n", minigraf_last_error(db));
        minigraf_close(db);
        return 1;
    }
    printf("%s\n", query);
    minigraf_string_free(query);

    minigraf_checkpoint(db);
    minigraf_close(db);
    return 0;
}