Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

@blueshift-gg/sbpf-assembler

Assemble and link sBPF assembly to bytecode, powered by WebAssembly.

Install

npm install @blueshift-gg/sbpf-assembler
# or
yarn add @blueshift-gg/sbpf-assembler
# or
pnpm add @blueshift-gg/sbpf-assembler
# or
bun add @blueshift-gg/sbpf-assembler

Usage

Node.js

import { assemble } from "@blueshift-gg/sbpf-assembler";
// or: const { assemble } = require("@blueshift-gg/sbpf-assembler");

const program = `
.globl e
e:
  mov64 r0, 1
  exit
`;

const bytecode = assemble(program, 0 /* arch version */);

Browser (via bundler)

import init, { assemble } from "@blueshift-gg/sbpf-assembler";

await init();    // WASM is loaded asynchronously in browsers

const program = `
.globl e
e:
  mov64 r0, 1
  exit
`;

const bytecode = assemble(program, 0 /* arch version */);

Explicit subpath (if your bundler's condition resolution is unusual)

import { assemble } from "@blueshift-gg/sbpf-assembler/node";
import { assemble } from "@blueshift-gg/sbpf-assembler/bundler";
import init, { assemble } from "@blueshift-gg/sbpf-assembler/web";

API

assemble(source: string, arch: number): Uint8Array

Compiles an sBPF assembly program to ELF bytecode.

Parameter Type Description
source string sBPF assembly source
arch number Architecture version (e.g. 0)

License

MIT OR Apache-2.0