Library to use and publish shared libraries for bun:ffi.
- Add bun-ffi-z dependency
bun install @chainsafe/bun-ffi-z- Add bun-ffi-z section to package.json
"bun-ffi-z": {
"name": "example",
"targets": [
"linux-x64-gnu",
"linux-arm64-gnu",
"linux-x64-musl",
"linux-arm64-musl",
"darwin-x64",
"darwin-arm64",
"win32-x64"
],
"zigCwd": "zig",
"zigExportFiles": [
"src/root.zig"
]
}- Use bun-ffi-z to generate the bun ffi binding
bun-ffi-z generate-binding- Build shared library for native host
bun-ffi-z build- On publish CI, prepare an "artifacts" subdirectory which contains all prebuilt binaries
- name: Download all artifacts
if: ${{ steps.release.outputs.release_created }}
uses: actions/download-artifact@v4
with:
path: artifacts- Prepare
targetPackagessubdirectory by copying prebuilt binaries inside "artifacts" folder prepared above
bun-ffi-z prepublish --artifacts artifactsNote that both targetPackages and artifacts are relative to bun folder.
- Publish the root package and all target packages prepared above in
targetPackagessubdirectory
bun-ffi-z publishMIT