Skip to content

Commit f2f348d

Browse files
committed
feat: initial wasm support
1 parent bd34bac commit f2f348d

File tree

6 files changed

+54
-0
lines changed

6 files changed

+54
-0
lines changed

bindings/wasm/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/target
2+
lib

bindings/wasm/.rustfmt.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
max_width = 80
2+
tab_spaces = 2
3+
edition = "2021"

bindings/wasm/Cargo.toml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[package]
2+
name = "rkshare-wasm"
3+
version = "0.1.0"
4+
edition = "2024"
5+
6+
[lib]
7+
crate-type = ["cdylib"]
8+
9+
[dependencies]
10+
rkshare = { version = "0.1.0", path = "../../rkshare" }
11+
wasm-bindgen = "0.2.100"
12+
wasm-bindgen-futures = "0.4.50"
13+
arrow-wasm = { git = "https://github.com/kylebarron/arrow-wasm" }
14+
15+
[lints]
16+
workspace = true

bindings/wasm/deno.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"tasks": {
3+
"wasmbuild": "deno run -A jsr:@deno/wasmbuild@0.19.2",
4+
"build": "deno task wasmbuild build --project rkshare-wasm"
5+
}
6+
}

bindings/wasm/example.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { sse_summary } from "./lib/rkshare_wasm.js";
2+
3+
const df = await sse_summary();
4+
5+
console.log(df);
6+
console.log(df.getArrayMemorySize());
7+
const ffi = df.intoFFI();
8+
9+
console.log(ffi);

bindings/wasm/src/lib.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//! TODO: documentation
2+
3+
use wasm_bindgen::prelude::wasm_bindgen;
4+
5+
/// TODO: documentation
6+
#[wasm_bindgen]
7+
pub fn add(left: u64, right: u64) -> u64 {
8+
left + right
9+
}
10+
11+
/// TODO: documentation
12+
#[wasm_bindgen]
13+
pub async fn sse_summary() -> arrow_wasm::RecordBatch {
14+
let arrow = rkshare::sse::stock::summary::fetch::arrow::<()>()
15+
.await
16+
.unwrap();
17+
arrow_wasm::RecordBatch::new(arrow)
18+
}

0 commit comments

Comments
 (0)