Skip to content

Commit 3957518

Browse files
authored
Add native embedded database support (#211)
1 parent df2b356 commit 3957518

34 files changed

+6445
-313
lines changed

.github/workflows/build.yml

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
name: Build
2+
3+
permissions:
4+
contents: read
5+
6+
on:
7+
release:
8+
types: [published]
9+
workflow_dispatch:
10+
11+
jobs:
12+
linux:
13+
name: Build Linux wheels (${{ matrix.target }})
14+
runs-on: ubuntu-latest
15+
strategy:
16+
matrix:
17+
target: [x86_64, aarch64]
18+
steps:
19+
- name: Checkout repository
20+
uses: actions/checkout@v4
21+
22+
- name: Setup Rust
23+
uses: dtolnay/rust-toolchain@stable
24+
25+
- name: Build wheels
26+
uses: PyO3/maturin-action@v1
27+
with:
28+
target: ${{ matrix.target }}
29+
args: --release --out dist --interpreter 3.9 3.10 3.11 3.12 3.13
30+
sccache: 'true'
31+
manylinux: auto
32+
33+
- name: Upload wheels
34+
uses: actions/upload-artifact@v4
35+
with:
36+
name: wheels-linux-${{ matrix.target }}
37+
path: dist
38+
39+
macos:
40+
name: Build macOS wheels (${{ matrix.target }})
41+
runs-on: macos-latest
42+
strategy:
43+
matrix:
44+
target: [x86_64, aarch64]
45+
steps:
46+
- name: Checkout repository
47+
uses: actions/checkout@v4
48+
49+
- name: Setup Rust
50+
uses: dtolnay/rust-toolchain@stable
51+
52+
- name: Build wheels
53+
uses: PyO3/maturin-action@v1
54+
with:
55+
target: ${{ matrix.target }}
56+
args: --release --out dist --interpreter 3.9 3.10 3.11 3.12 3.13
57+
sccache: 'true'
58+
59+
- name: Upload wheels
60+
uses: actions/upload-artifact@v4
61+
with:
62+
name: wheels-macos-${{ matrix.target }}
63+
path: dist
64+
65+
windows:
66+
name: Build Windows wheels
67+
runs-on: windows-latest
68+
strategy:
69+
matrix:
70+
target: [x64]
71+
steps:
72+
- name: Checkout repository
73+
uses: actions/checkout@v4
74+
75+
- name: Setup Rust
76+
uses: dtolnay/rust-toolchain@stable
77+
78+
- name: Build wheels
79+
uses: PyO3/maturin-action@v1
80+
with:
81+
target: ${{ matrix.target }}
82+
args: --release --out dist --interpreter 3.9 3.10 3.11 3.12 3.13
83+
sccache: 'true'
84+
85+
- name: Upload wheels
86+
uses: actions/upload-artifact@v4
87+
with:
88+
name: wheels-windows-${{ matrix.target }}
89+
path: dist
90+
91+
sdist:
92+
name: Build source distribution
93+
runs-on: ubuntu-latest
94+
steps:
95+
- name: Checkout repository
96+
uses: actions/checkout@v4
97+
98+
- name: Setup Rust
99+
uses: dtolnay/rust-toolchain@stable
100+
101+
- name: Build sdist
102+
uses: PyO3/maturin-action@v1
103+
with:
104+
command: sdist
105+
args: --out dist
106+
107+
- name: Upload sdist
108+
uses: actions/upload-artifact@v4
109+
with:
110+
name: sdist
111+
path: dist
112+
113+
release:
114+
name: Release to PyPI
115+
runs-on: ubuntu-latest
116+
if: github.event_name == 'release' && github.event.action == 'published'
117+
needs: [linux, macos, windows, sdist]
118+
environment:
119+
name: pypi
120+
url: https://pypi.org/p/surrealdb
121+
permissions:
122+
id-token: write
123+
steps:
124+
- name: Download all artifacts
125+
uses: actions/download-artifact@v4
126+
with:
127+
path: dist
128+
merge-multiple: true
129+
130+
- name: Publish to PyPI
131+
uses: PyO3/maturin-action@v1
132+
with:
133+
command: upload
134+
args: --skip-existing dist/*
135+

.github/workflows/ci.yml

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
name: Tests
1+
name: CI
2+
23
permissions:
34
contents: read
45

@@ -34,6 +35,9 @@ jobs:
3435
with:
3536
python-version: 3.13
3637

38+
- name: Setup Rust
39+
uses: dtolnay/rust-toolchain@stable
40+
3741
- name: Install dependencies
3842
run: uv sync --group dev
3943

@@ -66,6 +70,9 @@ jobs:
6670
with:
6771
python-version: 3.13
6872

73+
- name: Setup Rust
74+
uses: dtolnay/rust-toolchain@stable
75+
6976
- name: Install dependencies
7077
run: uv sync --group dev
7178

@@ -93,6 +100,9 @@ jobs:
93100
with:
94101
python-version: 3.13
95102

103+
- name: Setup Rust
104+
uses: dtolnay/rust-toolchain@stable
105+
96106
- name: Install dependencies
97107
run: uv sync --group dev
98108

@@ -137,9 +147,15 @@ jobs:
137147
- name: Wait for startup
138148
run: sleep 5
139149

150+
- name: Setup Rust
151+
uses: dtolnay/rust-toolchain@stable
152+
140153
- name: Install dependencies
141154
run: uv sync --group dev
142155

156+
- name: Build Rust extension
157+
run: uv run maturin develop --release
158+
143159
- name: Run unit tests (HTTP)
144160
run: uv run pytest
145161
env:

.github/workflows/cross_build.yml

Lines changed: 0 additions & 57 deletions
This file was deleted.

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ build/
6767
# Rust
6868
# -----------------------------------
6969
/target/
70-
Cargo.lock
7170
# -----------------------------------
7271
# Packaging
7372
# -----------------------------------

0 commit comments

Comments
 (0)