Summary
Support custom storage engines written in Python via a nanobind trampoline.
References
docs/05_api_python.md §2.3 (custom engine contract)
docs/01_requirements.md X01, N03
Scope
Out of scope
- Performance parity with C++ engines
Acceptance Criteria
- A pure-Python engine passes the pytest contract suite
- Snapshot isolation holds via the fallback for engines without
take_snapshot
- A StorageNode running on a Python engine serves gets/puts end-to-end
Dependencies
For the implementer
- Copy the checklist above into your PR description and tick items as you
complete them. Do not edit the checklist in this issue.
- Follow
docs/development_workflow.md (branch issue/28-python-custom-engine,
Conventional Commits per §2.1, TDD RED first).
- This issue is closed automatically by the PR via
Closes #28.
Summary
Support custom storage engines written in Python via a nanobind trampoline.
References
docs/05_api_python.md§2.3 (custom engine contract)docs/01_requirements.mdX01, N03Scope
python/bindings/storage_engine_trampoline.cpp: subclasssitos.StorageEnginein Python implementingput/get/list/delete(and optionaltake_snapshot)take_snapshotfalls back to the copy-based default (N03)production guidance (prefer C++ engines) in the docstring
Python dict-based engine (
tests/python/test_custom_engine.py)Out of scope
Acceptance Criteria
take_snapshotDependencies
For the implementer
complete them. Do not edit the checklist in this issue.
docs/development_workflow.md(branchissue/28-python-custom-engine,Conventional Commits per §2.1, TDD RED first).
Closes #28.