Migration
Move to Brain from another memory layer, or track how Brain versions its SDKs and wire protocol pre-1.0.
Moving to Brain
Brain's typed memories and built-in entity graph differ enough from flat vector-memory layers that a one-to-one port rarely makes sense. The guide below is opinionated — it shows what maps cleanly and where you'll want to restructure.
Coming from Zep, a Pinecone-backed memory layer, or a LangChain memory abstraction? The mem0 guide is the closest analog — the verb and identity mapping carries over.
Versioning
Brain versions in two places, and they move independently:
- The SDKs —
@brain-db/sdk(TypeScript),brain-db-sdk(Python and Rust), all at0.1.0and following semver. - The wire protocol — the
BRN0frame version, negotiated in the handshake when a client connects.
SDK versions
Where the SDKs are today (0.1.0) and the compatibility guarantees that kick in at 1.0.
API & wire versioning
How the wire protocol version is negotiated, and what "pre-release" means for stability today.
Pre-1.0: breaking changes happen in place
Brain is pre-release (0.1.0) with no external users yet. Until 1.0 ships,
the wire protocol, storage layout, and SDK surface can change in place —
there are no back-compat shims, no deprecated aliases, and no dated
API-version header. Pin the exact SDK version you build against.
Once 1.0 lands, the intended guarantee is the usual semver contract: within a
major SDK version the verb surface (encode / recall / forget / link /
unlink / plan / reason / whoami / capabilities), the request and
response shapes, and the identity-by-key model stay stable; additive changes
(new optional fields, new verbs) ship in minors. Breaking changes wait for the
next major and come with migration notes.
Was this page helpful?