diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/add.rs | 7 | ||||
-rw-r--r-- | examples/add.ts | 12 | ||||
-rw-r--r-- | examples/add.zig | 6 |
3 files changed, 25 insertions, 0 deletions
diff --git a/examples/add.rs b/examples/add.rs new file mode 100644 index 000000000..8ff8676cc --- /dev/null +++ b/examples/add.rs @@ -0,0 +1,7 @@ +#[no_mangle] +pub extern "C" fn add(a: isize, b: isize) -> isize { + a + b +} + +// to compile: +// rustc --crate-type cdylib add.rs diff --git a/examples/add.ts b/examples/add.ts new file mode 100644 index 000000000..e975b122e --- /dev/null +++ b/examples/add.ts @@ -0,0 +1,12 @@ +import { dlopen, suffix } from "bun:ffi"; + +const { + symbols: { add }, +} = dlopen(`./libadd.${suffix}`, { + add: { + args: ["i32", "i32"], + returns: "i32", + }, +}); + +console.log(add(1, 2)); diff --git a/examples/add.zig b/examples/add.zig new file mode 100644 index 000000000..24b78bec7 --- /dev/null +++ b/examples/add.zig @@ -0,0 +1,6 @@ +pub export fn add(a: i32, b: i32) i32 { + return a + b; +} + +// to compile: +// zig build-lib -OReleaseFast ./add.zig -dynamic --name add |