Crate omendb

Crate omendb 

Source
Expand description

C FFI bindings for OmenDB

Provides a C-compatible API for embedding OmenDB in other languages.

§Safety

All functions that take raw pointers are marked unsafe because:

  • The caller must ensure pointer validity
  • The caller must ensure proper memory management

§Example (C)

#include "omendb.h"

omendb_db_t* db = omendb_open("./vectors", 384, NULL);
if (!db) {
    printf("Error: %s\n", omendb_last_error());
    return 1;
}

// Insert vectors
const char* items = "[{\"id\":\"doc1\",\"vector\":[0.1,...],\"metadata\":{}}]";
omendb_set(db, items);

// Search
float query[384] = {0.1, ...};
char* results = NULL;
omendb_search(db, query, 384, 10, NULL, &results);
printf("Results: %s\n", results);
omendb_free_string(results);

omendb_close(db);

Structs§

OmenDB
Opaque database handle

Functions§

omendb_close
Close database and free resources
omendb_count
Get number of vectors in database
omendb_delete
Delete vectors by ID
omendb_enable_text_search
Enable text search for hybrid search
omendb_flush
Flush pending changes (commits text index)
omendb_free_string
Free a string returned by OmenDB
omendb_get
Get vectors by ID
omendb_has_text_search
Check if text search is enabled
omendb_hybrid_search
Hybrid search combining vector and text
omendb_last_error
Get last error message
omendb_open
Open a database at the given path
omendb_save
Save database to disk
omendb_search
Search for similar vectors
omendb_set
Insert or replace vectors
omendb_set_with_text
Set vectors with text for hybrid search
omendb_text_search
Text-only search (BM25)
omendb_version
Get OmenDB version