# ProcessIsolationBinding

`import { ProcessIsolationBinding } from "destack:process/binding";`

Isolation binding family.

```ds title="ProcessIsolationBinding"
export interface ProcessIsolationBinding {
    enterNamespace(pid: ProcessId, namespace: ProcessNamespaceKind): Result<void, HostError>;
    unshare(flags: ProcessUnshareFlags): Result<void, HostError>;
    chroot(path: &'a readonly Path): Result<void, HostError>;
    setSyscallFilter(program: &'a readonly [uint8], flags: SyscallFilterFlags): Result<void, HostError>;
    setHostname(name: &'a readonly string): Result<void, HostError>;
    setNetworkNamespace(path: &'a readonly Path): Result<void, HostError>;
}
```

[language/library/src/process/binding/isolation.ds:33:96](https://github.com/destack-sh/destack/blob/main/language/library/src/process/binding/isolation.ds#L33-L96)

## Members

### `enterNamespace(pid: ProcessId, namespace: ProcessNamespaceKind): Result<void, HostError>`

Enter one namespace owned by another process.

### `unshare(flags: ProcessUnshareFlags): Result<void, HostError>`

Unshare one or more namespaces.

### `chroot(path: &'a readonly Path): Result<void, HostError>`

Change the root directory for path resolution.

### `setSyscallFilter(program: &'a readonly [uint8], flags: SyscallFilterFlags): Result<void, HostError>`

Install one syscall filter program.

### `setHostname(name: &'a readonly string): Result<void, HostError>`

Set process host name inside the active UTS namespace.

### `setNetworkNamespace(path: &'a readonly Path): Result<void, HostError>`

Set network namespace context for subsequent network operations.
