Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 6 additions & 16 deletions src/os/persistence/PersistenceLayer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,18 @@ const SIGNATURE_LENGTH = 32;
export class PersistenceLayer {
/**
* Bolt Optimization: Explicitly typed as Buffer.
* Constructs output buffer using Buffer.allocUnsafe() with manual .set() and .write() copying,
* which is significantly faster (~15%) than Buffer.concat() and avoids multiple buffer allocations.
* Computes HMAC directly on string payload and writes directly to pre-allocated buffer
* using Buffer.alloc to eliminate uninitialized memory leak hazards while avoiding extra allocations.
*/
save(data: any, key: string): Buffer {
const payload = JSON.stringify(data);
const payloadBuf = Buffer.from(payload, 'utf8');

// Bolt Optimization: Allocate unsafe buffer for exact combined size to avoid Buffer.concat and intermediate payload allocations
const outBuf = Buffer.allocUnsafe(38 + payloadBuf.length);

// Copy pre-allocated header and payload
outBuf.set(HEADER_BUF, 0);
outBuf.set(payloadBuf, 38);
const payloadByteLength = Buffer.byteLength(payload, 'utf8');

// Compute and write HMAC signature directly
const hmac = crypto.createHmac('sha256',. key);
hmac.update(payloadBuf);
const hmac = crypto.createHmac('sha256', key);
hmac.update(payload, 'utf8');
const signature = hmac.digest();
outBuf.set(signature, 6);

const payloadByteLength = Buffer.byteLength(payload, 'utf8');
const out = Buffer.allocUnsafe(HEADER_LENGTH + SIGNATURE_LENGTH + payloadByteLength);
const out = Buffer.alloc(HEADER_LENGTH + SIGNATURE_LENGTH + payloadByteLength);

// Zero-copy set of pre-allocated header
out.set(HEADER_MAGIC, 0);
Expand Down