Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/drivers-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ jobs:
target: [ "x86_64-unknown-linux-gnu" ]
fail-fast: false
container:
image: cubejs/rust-cross:${{ matrix.target }}-15082024
image: cubejs/rust-cross:${{ matrix.target }}-31072025

steps:
- name: Checkout
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
timeout-minutes: 60
name: Build Linux Native backend for Dev image
container:
image: cubejs/rust-cross:x86_64-unknown-linux-gnu-15082024-python-3.11
image: cubejs/rust-cross:x86_64-unknown-linux-gnu-31072025-python-3.11

steps:
- name: Checkout
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
strategy:
matrix:
node-version: [22]
python-version: ["3.9", "3.10", "3.11", "3.12", "fallback"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "fallback"]
target: ["x86_64-unknown-linux-gnu", "aarch64-unknown-linux-gnu"]
include:
- target: x86_64-unknown-linux-gnu
Expand All @@ -87,7 +87,7 @@ jobs:
package_target_libc: glibc
fail-fast: false
container:
image: cubejs/rust-cross:${{ matrix.target }}-15082024${{ matrix.python-version != 'fallback' && format('-python-{0}', matrix.python-version) || '' }}
image: cubejs/rust-cross:${{ matrix.target }}-31072025${{ matrix.python-version != 'fallback' && format('-python-{0}', matrix.python-version) || '' }}
permissions:
contents: write
steps:
Expand Down Expand Up @@ -155,7 +155,7 @@ jobs:
node-version: [22.x]
os-version: ["macos-13"]
target: ["x86_64-apple-darwin", "aarch64-apple-darwin"]
python-version: ["3.9", "3.10", "3.11", "3.12", "fallback"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "fallback"]
include:
- target: x86_64-apple-darwin
package_target_arch: x64
Expand Down Expand Up @@ -610,7 +610,7 @@ jobs:
compress: false
fail-fast: false
container:
image: cubejs/rust-cross:${{ matrix.target }}-15082024
image: cubejs/rust-cross:${{ matrix.target }}-31072025
permissions:
contents: write
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ jobs:
timeout-minutes: 60
if: (needs['latest-tag-sha'].outputs.sha != github.sha)
container:
image: cubejs/rust-cross:x86_64-unknown-linux-gnu-15082024
image: cubejs/rust-cross:x86_64-unknown-linux-gnu-31072025
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -269,7 +269,7 @@ jobs:
python-version: [ 3.11 ]
fail-fast: false
container:
image: cubejs/rust-cross:x86_64-unknown-linux-gnu-15082024-python-${{ matrix.python-version }}
image: cubejs/rust-cross:x86_64-unknown-linux-gnu-31072025-python-${{ matrix.python-version }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/rust-cubesql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
timeout-minutes: 20
name: Check fmt/clippy
container:
image: cubejs/rust-cross:x86_64-unknown-linux-gnu-15082024
image: cubejs/rust-cross:x86_64-unknown-linux-gnu-31072025

steps:
- name: Checkout
Expand Down Expand Up @@ -128,7 +128,7 @@ jobs:
# Current used version + 1 LTS
# TODO: Add 24 after it's been released (don't forget to uncomment excludes below!)
node-version: [22]
python-version: ["3.9", "3.10", "3.11", "3.12", "fallback"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "fallback"]
target: ["x86_64-unknown-linux-gnu", "aarch64-unknown-linux-gnu"]
# minimize number of jobs
exclude:
Expand All @@ -141,7 +141,7 @@ jobs:
target: "aarch64-unknown-linux-gnu"
fail-fast: false
container:
image: cubejs/rust-cross:${{ matrix.target }}-15082024${{ matrix.python-version != 'fallback' && format('-python-{0}', matrix.python-version) || '' }}
image: cubejs/rust-cross:${{ matrix.target }}-31072025${{ matrix.python-version != 'fallback' && format('-python-{0}', matrix.python-version) || '' }}

steps:
- name: Checkout
Expand Down Expand Up @@ -243,6 +243,8 @@ jobs:
python-version: "3.11"
- target: x86_64-apple-darwin
python-version: "3.12"
- target: x86_64-apple-darwin
python-version: "3.13"
- target: x86_64-apple-darwin
python-version: "fallback"
- target: aarch64-apple-darwin
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rust-cubestore-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ jobs:
compress: false
fail-fast: false
container:
image: cubejs/rust-cross:${{ matrix.target }}-15082024
image: cubejs/rust-cross:${{ matrix.target }}-31072025
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rust-cubestore.yml
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ jobs:
compress: false
fail-fast: false
container:
image: cubejs/rust-cross:${{ matrix.target }}-15082024
image: cubejs/rust-cross:${{ matrix.target }}-31072025
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
Expand Down
2 changes: 2 additions & 0 deletions packages/cubejs-backend-native/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ index.node
**/node_modules
**/.DS_Store
npm-debug.log
test/__pycache__/
test/subdir_for_test/__pycache__/
60 changes: 37 additions & 23 deletions packages/cubejs-backend-native/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 3 additions & 6 deletions packages/cubejs-backend-native/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,8 @@ log-reroute = "0.1"
minijinja = { version = "1", features = ["json", "loader"] }
once_cell = "1.10"
# python
pyo3 = { version = "0.20.0", features = [], optional = true }
pyo3-asyncio = { version = "0.20.0", features = [
"tokio-runtime",
"attributes",
], optional = true }
pyo3 = { version = "0.22.6", features = ["py-clone"], optional = true }
pyo3-async-runtimes = { version = "0.22.0", features = ["tokio-runtime", "attributes"], optional = true }
serde = { version = "1.0.217", features = ["derive"] }
serde_json = "1.0.127"
simple_logger = "1.7.0"
Expand All @@ -54,4 +51,4 @@ features = ["napi-1", "napi-4", "napi-6", "futures"]
default = ["neon-entrypoint"]
neon-debug = []
neon-entrypoint = []
python = ["pyo3", "pyo3-asyncio"]
python = ["pyo3", "pyo3-async-runtimes"]
1 change: 1 addition & 0 deletions packages/cubejs-backend-native/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
"value": [
"libpython",
[
"3.13",
"3.12",
"3.11",
"3.10",
Expand Down
8 changes: 5 additions & 3 deletions packages/cubejs-backend-native/src/cross/clrepr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ use neon::prelude::*;
use neon::result::Throw;
use neon::types::JsDate;
#[cfg(feature = "python")]
use pyo3::Python;
#[cfg(feature = "python")]
use std::cell::RefCell;
use std::collections::hash_map::{IntoIter, Iter, Keys};
use std::collections::HashMap;
Expand Down Expand Up @@ -96,9 +98,9 @@ pub enum StringType {
Safe,
}

/// Cross language representation is abstraction to transfer values between
/// Cross-language representation is an abstraction to transfer values between
/// JavaScript and Python across Rust. Converting between two different languages requires
/// to use Context which is available on the call (one for python and one for js), which result as
/// using Context which is available on the call (one for python and one for js), which results as
/// blocking.
#[derive(Debug, Clone)]
pub enum CLRepr {
Expand Down Expand Up @@ -240,7 +242,7 @@ impl CLRepr {
#[cfg(feature = "python")]
if from.is_a::<BoxedJsPyFunctionWrapper, _>(cx) {
let ref_wrap = from.downcast_or_throw::<BoxedJsPyFunctionWrapper, _>(cx)?;
let fun = ref_wrap.borrow().get_fun().clone();
let fun = Python::with_gil(|py| ref_wrap.borrow().get_fun().clone_ref(py));

return Ok(CLRepr::PythonRef(PythonRef::PyFunction(fun)));
}
Expand Down
Loading
Loading