Metadata-Version: 2.4
Name: fastdb4py
Version: 0.1.1
Summary: FastCarto database bindings
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Dynamic: license-file

# fastdb (v0.1.1 WIP)

**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.

## Installation
You can install the Python package of fastdb via pip:

```bash
pip install fastdb4py
```

**Note:** The package will build from source during installation for your specific platform. Ensure you have the necessary build tools and dependencies (e.g., a C++ compiler, CMake) installed.

## Development Environment
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.

### Python-Related Development

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.

#### Cleaning Builds
```bash
# 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
```

#### Building
```bash
# This operation will build the C++ core library and the Python bindings.
./py_utils.sh --build
```

#### Testing
```bash
# This operation will run the Python unit tests for the fastdb package.
./py_utils.sh --test
```
