google/nsjail

A lightweight process isolation tool that utilizes Linux namespaces, cgroups, rlimits and seccomp-bpf syscall filters, leveraging the Kafel BPF language for...

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 58 minutes ago
Added to GitGenius on September 16th, 2026
Created on May 14th, 2015
Open Issues & Pull Requests: 40 (+0)
GitHub issues: Enabled
Number of forks: 375
Total Stargazers: 4,116 (+0)
Total Subscribers: 82 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.4 days
Mean response time: 259.2 days
90th percentile: 1416.0 days
Tracked items: 52

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 5
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 317 days
Stale 30+ days: 1
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (3)
  • help wanted (1)
  • question (1)

Detailed Description

nsjail is a process isolation tool that uses Linux namespaces, cgroups, resource limits, and seccomp-bpf syscall filtering to confine untrusted or potentially dangerous processes.

The tool addresses the need to safely run arbitrary code by layering multiple Linux kernel isolation mechanisms. It combines namespace isolation for process, network, and filesystem separation with cgroup-based resource constraints, rlimit enforcement, and seccomp-bpf policies that restrict which system calls a process can invoke. The project uses Kafel, a domain-specific language for writing BPF policies, to make syscall filtering more accessible than raw bytecode while maintaining fine-grained control over process behavior.

nsjail suits scenarios where you need to execute untrusted binaries, sandbox user-submitted code, or isolate services from one another with minimal overhead. It works well for security-focused applications, containerized environments, and systems where you want stronger guarantees than traditional Unix permissions provide. The tool is particularly valuable when you need to combine multiple isolation layers rather than rely on a single mechanism, and when you want explicit control over which system calls are permitted rather than accepting the defaults of a heavier container runtime.

The project shows consistent maintenance with regular commits addressing bug fixes and feature improvements. Pull requests receive timely review and feedback from maintainers. The codebase demonstrates active refinement of both core isolation logic and the Kafel policy language. Issue tracking reflects engagement with user-reported problems and requests for enhanced functionality. Documentation is kept current alongside code changes, indicating attention to keeping the project usable for new adopters.