@jsonjoy.com/fs-snapshot
File system snapshot - serialize and deserialize file system trees to binary or JSON
Last updated 20 days ago by GitHub Actions .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @jsonjoy.com/fs-snapshot 
SYNC missed versions from official npm registry.

@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

Current Tags

  • 4.57.1                                ...           latest (20 days ago)

10 Versions

  • 4.57.1                                ...           20 days ago
  • 4.57.0                                ...           20 days ago
  • 4.56.11                                ...           a month ago
  • 4.56.10                                ...           3 months ago
  • 4.56.9                                ...           3 months ago
  • 4.56.8                                ...           3 months ago
  • 4.56.7                                ...           3 months ago
  • 4.56.4                                ...           3 months ago
  • 4.56.2                                ...           3 months ago
  • 4.56.1                                ...           3 months ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dev Dependencies (7)
Dependents (2)

Copyright 2013 - present © cnpmjs.org | Home |