Wait and hope for the best...
A C++ local database library with cross language bindings. Aiming to be a fast, lightweight, and easy-to-use data communication solution for RPC and coupled modeling in scientific computing.
- 2025-12-31(Bug Fix): Fixed an issue where shared memory segments were not being properly unregistered from the resource tracker upon closing, which could lead to resource leaks. (PR #17)
- 2025-12-15 (Release Improvement): Enabled distribution of pre-compiled binary wheels for macOS (Intel/Apple Silicon) and Linux (x86_64/aarch64), eliminating the need for local compilation tools during installation. (PR #15)
- 2025-12-10 (Bug Fix): Fixed the data type mapping for
U32fields in Python bindings to ensure correct representation as unsigned 32-bit integers in NumPy arrays. (PR #13) - 2025-12-10 (Bug Fix): Fixed an out-of-bounds access issue in
FastVectorDbLayer::Impl::getFieldOffset()when the field index is equal to the field count. (PR #12) - 2025-12-10 (Performance Improvement): Modified
ORM.truncate()to support directly allocating features without initializing them for performance consideration. Note that this change may have side effects; please test thoroughly. (PR #11)
You can install the Python package of fastdb via pip:
pip install fastdb4pyNote: Pre-compiled binary wheels are provided for major platforms (macOS, Linux). For other systems (including Windows), the package will build from source, requiring a C++ compiler and CMake.
This project uses DevContainer for development environment. Please refer to the .devcontainer/devcontainer.example.json file for configuration details.
For setting up the development environment, ensure you have Docker / Podman and VSCode DevContainer extension installed. Open the project in VSCode and create the .devcontainer/devcontainer.json file based on the example provided.
After connecting to the DevContainer, you can develop and test the project within the containerized environment.
The py_utils.sh script is provided to facilitate common development tasks related to the Python bindings of fastdb. When first launching the DevContainer, py_utils.sh will automatically set up a Python virtual environment and install the necessary dependencies.
# This operation will remove C++ build artifacts and the core Python bindings (fastdb.core, auto-generated by SWIG) within the Python package.
./py_utils.sh --clean# This operation will build the C++ core library and the Python bindings.
./py_utils.sh --build# This operation will run the Python unit tests for the fastdb package.
./py_utils.sh --test