forked from surrealdb/surrealdb.py
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: James <[email protected]> Co-authored-by: tsunyoku <[email protected]> Co-authored-by: Caeden <[email protected]> Co-authored-by: Jirapong Pansak <[email protected]> Co-authored-by: Tobie Morgan Hitchcock <[email protected]> Co-authored-by: Fábio Tramasoli <[email protected]> Co-authored-by: Joel <[email protected]> Co-authored-by: Tudor Andrei Dumitrascu <[email protected]> Co-authored-by: Sam Kenney <[email protected]> Co-authored-by: FrostyTheSouthernSnowman <[email protected]> Co-authored-by: Grzegorz Koperwas <[email protected]> Co-authored-by: Cellan Hall <[email protected]> Co-authored-by: Alexander <[email protected]> Co-authored-by: Tobie Morgan Hitchcock <[email protected]> Co-authored-by: Alexander <[email protected]> Co-authored-by: Dimension <[email protected]> Co-authored-by: Hitesh <[email protected]> Co-authored-by: Tudor Andrei Dumitrascu <[email protected]>
- Loading branch information
1 parent
89bdd36
commit 7de2c20
Showing
98 changed files
with
6,120 additions
and
226 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
[target.x86_64-apple-darwin] | ||
rustflags = [ | ||
"-C", "link-arg=-undefined", | ||
"-C", "link-arg=dynamic_lookup", | ||
] | ||
|
||
[target.aarch64-apple-darwin] | ||
rustflags = [ | ||
"-C", "link-arg=-undefined", | ||
"-C", "link-arg=dynamic_lookup", | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,187 @@ | ||
name: cross-build | ||
|
||
on: | ||
pull_request: | ||
types: [closed] | ||
branches: | ||
- main | ||
|
||
env: | ||
CARGO_TERM_COLOR: always | ||
|
||
jobs: | ||
|
||
wait-for-other-workflow: | ||
name: Wait for Other Workflow | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Wait for Other Workflow to Complete | ||
run: "echo 'Waiting for other workflow to complete...'" | ||
|
||
build: # Workflow credit to https://github.com/samuelcolvin/rtoml/blob/main/.github/workflows/ci.yml | ||
if: github.event.pull_request.merged == true | ||
name: > | ||
build ${{ matrix.python-version }} on ${{ matrix.platform || matrix.os }} | ||
(${{ matrix.alt_arch_name || matrix.arch }}) | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu, macos, windows] | ||
python-version: ["cp310", "pp37", "pp38", "pp39"] | ||
arch: [main, alt] | ||
include: | ||
- os: ubuntu | ||
platform: linux | ||
- os: windows | ||
ls: dir | ||
- os: macos | ||
arch: alt | ||
alt_arch_name: "arm64 universal2" | ||
exclude: | ||
- os: macos | ||
python-version: "pp37" | ||
arch: alt | ||
- os: macos | ||
python-version: "pp38" | ||
arch: alt | ||
- os: macos | ||
python-version: "pp39" | ||
arch: alt | ||
runs-on: ${{ format('{0}-latest', matrix.os) }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: set up python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.9" | ||
|
||
- name: set up rust | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
toolchain: stable | ||
|
||
- name: update pip version | ||
run: | | ||
pip install requests | ||
python get_latest_version.py | ||
- name: Setup Rust cache | ||
uses: Swatinem/rust-cache@v2 | ||
with: | ||
key: ${{ matrix.alt_arch_name }} | ||
|
||
- run: rustup target add aarch64-apple-darwin | ||
if: matrix.os == 'macos' | ||
|
||
- run: rustup toolchain install stable-i686-pc-windows-msvc | ||
if: matrix.os == 'windows' | ||
|
||
- run: rustup target add i686-pc-windows-msvc | ||
if: matrix.os == 'windows' | ||
|
||
- name: Get pip cache dir | ||
id: pip-cache | ||
if: matrix.os != 'windows' | ||
run: | | ||
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT | ||
- name: Get pip cache dir | ||
id: pip-cache-win | ||
if: matrix.os == 'windows' | ||
run: | | ||
"dir=$(pip cache dir)" >> $env:GITHUB_OUTPUT | ||
- name: Cache python dependencies | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ steps.pip-cache.outputs.dir || steps.pip-cache-win.outputs.dir }} | ||
key: ${{ runner.os }}-pip-${{ matrix.python-version }} | ||
|
||
- name: install python dependencies | ||
run: pip install -U setuptools wheel twine cibuildwheel platformdirs | ||
|
||
- name: Display cibuildwheel cache dir | ||
id: cibuildwheel-cache | ||
run: | | ||
from platformdirs import user_cache_path | ||
import os | ||
with open(os.getenv('GITHUB_OUTPUT'), 'w') as f: | ||
f.write(f"dir={str(user_cache_path(appname='cibuildwheel', appauthor='pypa'))}") | ||
shell: python | ||
|
||
- name: Cache cibuildwheel tools | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ steps.cibuildwheel-cache.outputs.dir }} | ||
key: ${{ runner.os }}-cibuildwheel-${{ matrix.python-version }} | ||
|
||
- name: Install LLVM and Clang # required for bindgen to work, see https://github.com/rust-lang/rust-bindgen/issues/1797 | ||
uses: KyleMayes/install-llvm-action@v1 | ||
if: runner.os == 'Windows' | ||
with: | ||
version: "11.0" | ||
directory: ${{ runner.temp }}/llvm | ||
|
||
- name: Set LIBCLANG_PATH | ||
run: echo "LIBCLANG_PATH=$((gcm clang).source -replace "clang.exe")" >> $env:GITHUB_ENV | ||
if: runner.os == 'Windows' | ||
|
||
- name: build_sdist | ||
if: matrix.os == 'ubuntu' && matrix.python-version == 'cp310' | ||
run: | | ||
pip install maturin build | ||
python -m build --sdist -o wheelhouse | ||
- name: build ${{ matrix.platform || matrix.os }} binaries | ||
run: cibuildwheel --output-dir wheelhouse | ||
env: | ||
CIBW_BUILD: "${{ matrix.python-version }}-*" | ||
# rust doesn't seem to be available for musl linux on i686 | ||
CIBW_SKIP: "*-musllinux_i686" | ||
# we build for "alt_arch_name" if it exists, else 'auto' | ||
CIBW_ARCHS: ${{ matrix.alt_arch_name || 'auto' }} | ||
CIBW_ENVIRONMENT: 'PATH="$HOME/.cargo/bin:$PATH" CARGO_TERM_COLOR="always"' | ||
CIBW_ENVIRONMENT_WINDOWS: 'PATH="$UserProfile\.cargo\bin;$PATH"' | ||
CIBW_BEFORE_BUILD: rustup show | ||
CIBW_BEFORE_BUILD_LINUX: > | ||
curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain=stable --profile=minimal -y && | ||
rustup show | ||
CIBW_BUILD_VERBOSITY: 1 | ||
|
||
- run: ${{ matrix.ls || 'ls -lh' }} wheelhouse/ | ||
|
||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: wheels | ||
path: wheelhouse | ||
|
||
release: | ||
if: github.event.pull_request.merged == true | ||
needs: build | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/download-artifact@v2 | ||
with: | ||
name: wheels | ||
path: wheelhouse | ||
|
||
- name: Install twine | ||
run: python -m pip install --upgrade twine | ||
|
||
- name: Create pypirc file | ||
run: | | ||
echo "[distutils]" > ~/.pypirc | ||
echo "index-servers =" >> ~/.pypirc | ||
echo " pypi" >> ~/.pypirc | ||
echo "" >> ~/.pypirc | ||
echo "[pypi]" >> ~/.pypirc | ||
echo "username: __token__" >> ~/.pypirc | ||
echo "password: \${{ secrets.PYPI_TOKEN }}" >> ~/.pypirc | ||
env: | ||
PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} | ||
|
||
- name: Publish to PyPI | ||
run: twine upload wheelhouse/* | ||
env: | ||
TWINE_USERNAME: __token__ | ||
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
name: unit-tests | ||
|
||
on: | ||
pull_request: | ||
# push: | ||
branches: | ||
- "*" | ||
|
||
jobs: | ||
run-unit-tests: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
python-version: [ "3.7", "3.8", "3.9", "3.10" ] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
- name: Build for tests | ||
run: | | ||
python tests/scripts/local_build_ci.py | ||
pip install docker | ||
pip install requests | ||
# docker-compose build | ||
# docker-compose up -d | ||
# sleep 2 | ||
|
||
- name: Run Tests | ||
run: sh scripts/run_tests.sh | ||
|
||
run-rust-unit-tests: | ||
needs: run-unit-tests | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Set up Rust | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
|
||
- name: Build and Run Unit Tests | ||
run: cargo test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
[package] | ||
name = "surrealdb" | ||
version = "0.1.0" | ||
authors = ["Maxwell Flitton <[email protected]>"] | ||
edition = "2018" | ||
|
||
[dependencies] | ||
surrealdb = { version = "1.2.0", features = ["protocol-ws", "protocol-http", "kv-mem"] } | ||
serde = "^1.0.164" | ||
futures = { version="0.3.30", features = ["executor"] } | ||
once_cell = "1.19.0" | ||
serde_json = "^1.0.97" | ||
crossbeam-channel = "^0.5" | ||
thiserror = "^1.0.43" | ||
|
||
[dev-dependencies] | ||
tokio = { version = "1.36.0", features = ["full"] } | ||
bollard = "*" | ||
futures-util-preview = "0.2.2" | ||
|
||
[lib] | ||
name = "rust_surrealdb" | ||
crate-type=["cdylib"] | ||
|
||
[dependencies.pyo3] | ||
version = "0.20.0" | ||
features = ["extension-module"] | ||
|
||
[dependencies.pyo3-asyncio] | ||
version = "0.20" | ||
features = ["unstable-streams", "attributes", "tokio-runtime"] | ||
|
||
[dependencies.uuid] | ||
version = "1.3.4" | ||
features = [ | ||
"v4", # Lets you generate random UUIDs | ||
"fast-rng", # Use a faster (but still sufficiently random) RNG | ||
"macro-diagnostics", # Enable better diagnostics for compile-time UUIDs | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
FROM ubuntu:latest | ||
|
||
# Set the working directory | ||
WORKDIR /app | ||
|
||
# Copy the source code | ||
COPY src /app/src | ||
|
||
# Copy the .cargo directory | ||
COPY .cargo /app/.cargo | ||
|
||
# Copy the surrealdb directory | ||
COPY surrealdb /app/surrealdb | ||
|
||
# Copy the Cargo.toml file | ||
COPY Cargo.toml /app/Cargo.toml | ||
|
||
# Copy the pyproject.toml file | ||
COPY pyproject.toml /app/pyproject.toml | ||
|
||
# Copy the setup.py file | ||
COPY setup.py /app/setup.py | ||
|
||
RUN apt update | ||
RUN apt install -y clang | ||
RUN apt-get install -y libclang-dev | ||
RUN apt install -y python3 | ||
RUN apt install -y python3-pip | ||
RUN apt install -y curl | ||
RUN apt install -y vim | ||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | ||
RUN export PATH="$HOME/.cargo/bin:$PATH" | ||
RUN pip3 install setuptools_rust | ||
RUN python3 setup.py bdist_wheel | ||
|
||
# docker build . -t package-test | ||
# docker run -d -p 18000:18000 package-test | ||
|
||
EXPOSE 18000 | ||
|
||
CMD ["bash", "-c", "trap : TERM INT; sleep infinity & wait"] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
recursive-include surrealdb *.so | ||
recursive-include surrealdb *.txt |
Oops, something went wrong.