MemoDocumentation
EN

CGO, SQLite and FTS5

Memo uses mattn/go-sqlite3, so CGO is required. Include the sqlite_fts5 build tag in build, run and test commands:

CGO_ENABLED=1 go build -tags "sqlite_fts5" ./...
CGO_ENABLED=1 go test -tags "sqlite_fts5" ./...
CGO_ENABLED=1 go run -tags "sqlite_fts5" .

Without the tag, SQLite's FTS5 table is unavailable and memory falls back to vector-only retrieval. This weakens the hybrid keyword/vector search without necessarily showing a visible UI error.

Vector extension

The bundled sqlite-vec extension supplies the vec0 table. Build and distribution scripts package the platform engine files. The source guide describes fallback behavior and platform compiler prerequisites. On Windows a compatible gcc toolchain is needed; macOS extension-loading builds may require the documented CGO_CFLAGS option.


Source document