Developers
Convert Buddy
A streaming data processing engine for JavaScript, powered by Rust + WebAssembly.
Install
npm install convert-buddy-js- Streaming parsing
- Format & structure detection
- Inline transformation
- High-throughput conversion
- Browser + Node support
- Progress & cancellation
Architecture
- Rust core for deterministic streaming.
- WASM bindings for browser and Node.
- Streaming memory model with visibility into telemetry.
Minimal example
import { ConvertBuddy } from "convert-buddy-js";
const csv = 'name,age,city\nAlice,30,NYC\nBob,25,LA';
const cb = new ConvertBuddy({ outputFormat: 'ndjson' });
// Stream API (preferred)
const controller = cb.stream(csv, {
recordBatchSize: 100,
onRecords: async (ctrl, records, stats, total) => {
// process batch
// Note: async `onRecords` handlers are awaited by the converter,
// providing automatic backpressure (the converter pauses until the handler resolves).
await saveToDatabase(records);
// progress available here via stats / ctrl.recordCount
console.log(`Processed ${ctrl.recordCount} records; speed=${stats.throughputMbPerSec.toFixed(2)} MB/s`);
},
onDone: (stats) => console.log('Done', stats)
});
await controller.done;Advanced example
const buddy = new ConvertBuddy({
transform: (r) => ({ ...r, age_group: r.age > 50 ? "senior" : "adult" }),
onProgress: (stats) => console.log(stats.throughputMbPerSec)
});