elips/docs
Chapter X · interop

How the Python bindings work

Python doesn't reimplement anything. It binds the same ElipsInstance and Vault that C++ users hold.

From docs/python/bindings/pybind11-architecture.md: there is a low-level surface (elips.open, Database, Vault — direct binding mirrors) and a modern surface (connect(), Engine, Arena — opinionated Pythonic wrappers).

python
# low-level — mirrors C++ shapes
db = elips.open("/data/db", dimension=384)
docs = db.vault("documents")

# modern — opinionated
eng = elips.connect("/data/db", dimension=384)
arena = eng.arena("documents")
  • Vectors cross the boundary as zero-copy float buffers when possible
  • Payload dicts are converted via pybind11's std::variant binding
  • Errors are translated to elips.ConfigError / StorageError / … on the Python side