Scramjet Browser | Work
const StringStream = require('scramjet');// Simulate browser data stream (WebSocket messages) const browserDataStream = StringStream.from([ "user1,click,2024-01-01T10:00:00Z", "user2,view,2024-01-01T10:00:01Z", ]);
browserDataStream .split(",") // split each line into fields .map(([user, action, time]) => ( user, action, time )) .filter(ev => ev.action === "click") .each(click => console.log("Click event:", click)) .run();
If you are using a build tool like Vite, Webpack, or Rollup: scramjet browser work
npm install scramjet
JavaScript Import:
import DataStream from 'scramjet';
Imagine fetching a large .ndjson file (Newline Delimited JSON).
DataStream.from(response.body) // Convert binary chunks to strings .setOptions( decodeStrings: true )// Split by newline and parse JSON safely .JSONParse() If you are using a build tool like
// Filter data (e.g., only active users) .filter(user => user.isActive === true)
// Transform data (e.g., anonymize emails) .map(user => user.email = "redacted@example.com"; return user; )
// Consume the stream .each(user => console.log("Processed:", user.id));JavaScript Import: import DataStream from 'scramjet';
While Scramjet runs on the server (Node.js), it can process data to and from browsers: