UNPKG

projfs-fuse.one

Version:

FUSE3-compatible API for Windows using ProjFS - provides cross-platform virtual filesystem support

91 lines 2.69 kB
/** * ProjFS-FUSE.ONE - FUSE3-compatible API for Windows using ProjFS * * This package provides a FUSE3-compatible interface on Windows by using * Windows Projected File System (ProjFS) as the backend. Applications can * use the same FUSE3 API on both Linux and Windows for cross-platform * virtual filesystem development. * * @author REFINIO GmbH * @license MIT */ import { EventEmitter } from 'events'; export interface FuseStats { mtime: Date; atime: Date; ctime: Date; size: number; mode: number; uid: number; gid: number; } export interface FuseOperations { init?: () => void; getattr?: (path: string) => FuseStats | null; readdir?: (path: string) => string[]; read?: (path: string, size: number, offset: number) => Buffer | null; write?: (path: string, buffer: Buffer, offset: number) => number; create?: (path: string, mode: number) => void; unlink?: (path: string) => void; mkdir?: (path: string, mode: number) => void; rmdir?: (path: string) => void; rename?: (oldPath: string, newPath: string) => void; truncate?: (path: string, size: number) => void; open?: (path: string, flags: number) => number; release?: (path: string, fd: number) => void; statfs?: (path: string) => any; } /** * ProjFS-FUSE filesystem class * * Provides a FUSE3-compatible interface on Windows using ProjFS as backend. * This allows the same FUSE3 code to work on both Linux and Windows. */ export declare class ProjFSFuse extends EventEmitter { private mounted; private mountPath; private operations; private nativeInstance; constructor(mountPath: string, operations: FuseOperations, options?: any); /** * Mount the filesystem with FUSE3-compatible operations * * This method adapts FUSE3 operations to ProjFS callbacks automatically */ mount(): Promise<void>; /** * Unmount the filesystem */ unmount(): Promise<void>; /** * Check if filesystem is mounted */ isMounted(): boolean; /** * Get mount path */ getMountPath(): string; /** * Adapt FUSE3 operations to ProjFS callbacks * * This is the core adapter logic that makes FUSE3 operations work with ProjFS */ private adaptFuseOperationsToProjFS; } export default ProjFSFuse; export declare const FUSE_ERRORS: { EPERM: number; ENOENT: number; EIO: number; EACCES: number; EEXIST: number; ENOTDIR: number; EISDIR: number; EINVAL: number; ENOSPC: number; EROFS: number; EBUSY: number; ENOTEMPTY: number; }; export { ProjFSFuse as Fuse3 }; //# sourceMappingURL=index.d.ts.map