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: