Sign In

@jsonjoy.com/fs-snapshot

Package Overview
Dependencies
Maintainers
2
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jsonjoy.com/fs-snapshot

File system snapshot - serialize and deserialize file system trees to binary or JSON

Source
npmnpm
Version
4.66.1
Version published
Weekly downloads
10M
0.71%
Maintainers
2
Weekly downloads
 
Created
Source

@jsonjoy.com/fs-snapshot

File system snapshot - serialize and deserialize file system trees to binary (CBOR) or JSON format.

Installation

npm install @jsonjoy.com/fs-snapshot

Features

  • Serialize entire file system trees into compact binary (CBOR) or JSON snapshots
  • Restore file system trees from snapshots
  • Supports files, directories, and symbolic links
  • Both synchronous and asynchronous APIs
  • Works with any Node.js-compatible fs module

Usage

Synchronous API

import * as fs from 'fs';
import { toSnapshotSync, fromSnapshotSync } from '@jsonjoy.com/fs-snapshot';

// Create a snapshot of a directory
const snapshot = toSnapshotSync({ fs, path: '/path/to/directory' });

// Restore the snapshot to a different location
fromSnapshotSync(snapshot, { fs, path: '/path/to/restore' });

Asynchronous API

import * as fs from 'fs';
import { toSnapshot, fromSnapshot } from '@jsonjoy.com/fs-snapshot';

// Create a snapshot of a directory
const snapshot = await toSnapshot({ fs: fs.promises, path: '/path/to/directory' });

// Restore the snapshot to a different location
await fromSnapshot(snapshot, { fs: fs.promises, path: '/path/to/restore' });

Binary (CBOR) Snapshots

Binary snapshots are more compact and faster to serialize/deserialize:

import * as fs from 'fs';
import { toBinarySnapshotSync, fromBinarySnapshotSync } from '@jsonjoy.com/fs-snapshot';

// Create a binary snapshot
const binary = toBinarySnapshotSync({ fs, path: '/path/to/directory' });

// Restore from binary snapshot
fromBinarySnapshotSync(binary, { fs, path: '/path/to/restore' });

JSON Snapshots

JSON snapshots are human-readable and easier to debug:

import * as fs from 'fs';
import { toJsonSnapshotSync, fromJsonSnapshotSync } from '@jsonjoy.com/fs-snapshot';

// Create a JSON snapshot
const jsonSnapshot = toJsonSnapshotSync({ fs, path: '/path/to/directory' });

// Restore from JSON snapshot
fromJsonSnapshotSync(jsonSnapshot, { fs, path: '/path/to/restore' });

Snapshot Format

Snapshots are represented as tuples with the following structure:

  • Folder: [0, metadata, { entries }]
  • File: [1, metadata, Uint8Array]
  • Symlink: [2, { target: string }]

License

Apache-2.0

Keywords

filesystem

FAQs

Package last updated on 03 Aug 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts