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
OmenDBversion