description: "JavaScript entry for the prebuilt Landlock launcher and asynchronous POSIX flock."
English | 中文
The ./landlock-run entry exports the Landlock launcher path, enforcement probe, grant arguments, and protocol constants. The independent ./flock entry exports tryLockExclusive(fd): Promise<void>; importing either entry does not load system.node. The package has no root export.
The lock operation attempts LOCK_EX | LOCK_NB asynchronously. Keep the caller-owned descriptor open until completion; contention rejects with EAGAIN/EWOULDBLOCK, other syscall failures also reject, and errors carry their code, positive errno, and syscall: 'flock'. Native setup errors reject the same promise. Closing the last descriptor for the open file description releases the lock. The binding does not open, duplicate, close, or explicitly unlock descriptors.
Optional OS/CPU platform packages carry the binaries. Linux has bin/landlock-run and separate bin/glibc/system.node / bin/musl/system.node; macOS has bin/system.node. Missing or unloadable flock bindings reject acquisition, without installation-time compilation. Landlock remains a separate executable with its existing fail-closed protocol; unsupported kernels/platforms probe unusable.
The two C sources ship for auditability. See the workspace architecture, support matrix, and CLI contract.