Fileserver
Defined in: packages/core/src/kernel/types.ts:200
The universal filesystem interface. Any object implementing these 10 methods is a fileserver.
Remarks
Section titled “Remarks”The kernel routes all I/O through fileservers via namespace resolution. A fileserver
never sees process-level fd numbers — open() returns an opaque token that the
kernel maps to a process fd. All data on the wire is Uint8Array.
Fileservers are composable: overlayFS layers two fileservers for copy-on-write, union bind stacks multiple fileservers at one mount point. The protocol is small enough that fundamental capabilities (overlay, readonly, proxy) are just more fileservers.
Example
Section titled “Example”// Mount a custom fileserverconst fs = memoryFS()Unix().mount('/data', fs).use(stdSystem()).build()Properties
Section titled “Properties”
readonlyoptionaltype?:string
Defined in: packages/core/src/kernel/types.ts:202
Optional human-readable type tag (e.g. ‘memory’, ‘overlay’, ‘proc’).
Methods
Section titled “Methods”checkAccess()?
Section titled “checkAccess()?”
optionalcheckAccess(path,flags,caller):Promise<void>
Defined in: packages/core/src/kernel/types.ts:232
Optional permission override. When present, kernel calls this INSTEAD of the default mode-bit check. Allows synthetic fileservers (procFS, devFS, etc.) to implement custom access control semantics.
Parameters
Section titled “Parameters”InnerPath
OpenFlags
caller
Section titled “caller”Returns
Section titled “Returns”Promise<void>
close()
Section titled “close()”close(
fd):Promise<void>
Defined in: packages/core/src/kernel/types.ts:211
Close an open fd token.
Parameters
Section titled “Parameters”unknown
Returns
Section titled “Returns”Promise<void>
mkdir()
Section titled “mkdir()”mkdir(
path):Promise<void>
Defined in: packages/core/src/kernel/types.ts:220
Create a directory. Throws EEXIST if it already exists.
Parameters
Section titled “Parameters”InnerPath
Returns
Section titled “Returns”Promise<void>
open()
Section titled “open()”open(
path,flags,pid?):Promise<unknown>
Defined in: packages/core/src/kernel/types.ts:205
Open a file or directory, returning an opaque fd token.
Parameters
Section titled “Parameters”InnerPath
OpenFlags
Returns
Section titled “Returns”Promise<unknown>
read()
Section titled “read()”read(
fd,offset,count):Promise<Uint8Array<ArrayBufferLike>>
Defined in: packages/core/src/kernel/types.ts:207
Read up to count bytes from an open fd at the given offset.
Parameters
Section titled “Parameters”unknown
offset
Section titled “offset”number
number
Returns
Section titled “Returns”Promise<Uint8Array<ArrayBufferLike>>
readdir()
Section titled “readdir()”readdir(
path):Promise<DirEntry[]>
Defined in: packages/core/src/kernel/types.ts:217
List entries in a directory. Throws ENOTDIR if path is a file.
Parameters
Section titled “Parameters”InnerPath
Returns
Section titled “Returns”Promise<DirEntry[]>
remove()
Section titled “remove()”remove(
path):Promise<void>
Defined in: packages/core/src/kernel/types.ts:222
Remove a file or empty directory.
Parameters
Section titled “Parameters”InnerPath
Returns
Section titled “Returns”Promise<void>
rename()
Section titled “rename()”rename(
oldPath,newPath):Promise<void>
Defined in: packages/core/src/kernel/types.ts:224
Rename/move a file or directory.
Parameters
Section titled “Parameters”oldPath
Section titled “oldPath”InnerPath
newPath
Section titled “newPath”InnerPath
Returns
Section titled “Returns”Promise<void>
stat()
Section titled “stat()”stat(
path,opts?):Promise<Stat>
Defined in: packages/core/src/kernel/types.ts:215
Return metadata for a path. Throws ENOENT if not found.
When opts.nofollow is true, return the symlink node itself (lstat behavior).
Parameters
Section titled “Parameters”InnerPath
nofollow?
Section titled “nofollow?”boolean
Returns
Section titled “Returns”Promise<Stat>
write()
Section titled “write()”write(
fd,offset,data):Promise<number>
Defined in: packages/core/src/kernel/types.ts:209
Write data at the given offset, returning bytes written.
Parameters
Section titled “Parameters”unknown
offset
Section titled “offset”number
Uint8Array
Returns
Section titled “Returns”Promise<number>
wstat()
Section titled “wstat()”wstat(
path,changes):Promise<void>
Defined in: packages/core/src/kernel/types.ts:227
Update metadata fields (mode, uid, gid, mtime, size).
Parameters
Section titled “Parameters”InnerPath
changes
Section titled “changes”Partial<StatChanges>
Returns
Section titled “Returns”Promise<void>