Skip to content

feat!: 3.0 — RushDB Cloud and self-hosted engine (direct mode) - #24

Merged
1pxone merged 5 commits into
mainfrom
release/3.0-rust-engine
Oct 15, 2026
Merged

1pxone merged 5 commits into
mainfrom
release/3.0-rust-engine

Conversation

@1pxone

@1pxone 1pxone commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

RushDB 3.0: RushDB Cloud and a self-hosted engine

  • Direct mode (direct=True, engine_url): every SDK call is routed to a self-hosted rushdbd. Cloud-only methods raise CloudOnlyError; transaction writes the engine cannot stage raise DirectModeError — before anything is sent.
  • Transactions stage creates, update, set, delete_by_id, attach and imports; detach without a type removes every type both ways.
  • Text search parity with JS: records.text_search, db.text_indexes, hybrid options on vector_search, search meta on results.
  • Breaking: records.find raises instead of returning an empty result; ImportsAPI (import runs/uploads — no server implements them) removed.
  • Fixed: find_by_id of several ids, the export route, import_* with returnResult off.
  • Version 3.0.0.

Release order — step 5

Merge, then publish by tagging v3.0.0 (the publish job runs on v* tags). rushdb-hermes-memory requires rushdb>=3.0.0.

Tests

105 unit tests; 10 live tests against a real engine (RUSHDB_TEST_ENGINE_URL). black, isort, ruff and mypy clean.

Dependencies and security (resolves all 14 open Dependabot alerts)

  • No runtime dependencies. The SDK never imported requests or python-dotenv (the client uses urllib), so pip install rushdb no longer pulls in requests, urllib3 or idna. python-dotenv moves to the dev group; types-requests is dropped.
  • Dev tools at patched releases: black>=26.3.1, pytest>=9.0.3, Pygments>=2.20.0, python-dotenv>=1.2.2.
  • Breaking: requires-python >= 3.10 (3.8 and 3.9 are end-of-life; the patched tools need 3.10). CI matrix 3.10–3.13. ruff stays on 0.12.x so the lint rule set does not change.
  • The duplicate dev extra is removed; [dependency-groups].dev is the one dev list.

- Direct mode routes every SDK call to a standalone rushdbd; Cloud-only
  methods raise CloudOnlyError, unstageable transaction writes raise
  DirectModeError, before anything is sent.
- Transactions stage creates, update, set, delete_by_id, attach and
  imports; detach without a type removes every type both ways.
- Keyword search (records.text_search), text indexes (db.text_indexes),
  hybrid vector search options, search meta on results.
- Breaking: records.find raises instead of returning an empty result;
  ImportsAPI (import runs/uploads, no server) removed.
- Fixed: find_by_id of several ids, export route, import_* when
  returnResult is off.
- Version 3.0.0.
From 3.0 the self-hostable part of RushDB is the engine (rushdbd), reached
in direct mode. The dashboard, managed embeddings and the AI features are
part of RushDB Cloud. Remove the remaining mentions of a self-hosted
platform: mode tables, the `url` option (a RushDB Cloud API endpoint),
RUSHDB_API_URL, and the traversal notes (an omitted hops.max means up to
10 hops; there is no unbounded traversal).
- The SDK has no runtime dependencies: it never imported `requests` or
  `python-dotenv` (the client uses urllib), so installing it no longer
  pulls in requests/urllib3/idna. python-dotenv moves to the dev group
  (the test setup loads .env); types-requests is dropped.
- Dev tooling raised to patched releases: black >= 26.3.1,
  pytest >= 9.0.3, Pygments >= 2.20.0, python-dotenv >= 1.2.2.
- requires-python >= 3.10 (3.8 and 3.9 are end-of-life, and the patched
  tools need 3.10); CI matrix 3.10-3.13. ruff stays on 0.12.x so the
  upgrade does not change the lint rule set.
- One dev dependency list ([dependency-groups]); the duplicate
  `dev` extra is removed.

Closes Dependabot alerts 5-9, 11-19 (urllib3, requests, idna,
python-dotenv, black, pytest, Pygments).
@1pxone
1pxone merged commit 3476728 into main Oct 15, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant