{"id":13577230,"url":"https://github.com/rootless-containers/slirp4netns","last_synced_at":"2026-02-18T22:01:24.159Z","repository":{"id":38804440,"uuid":"140418870","full_name":"rootless-containers/slirp4netns","owner":"rootless-containers","description":"User-mode networking for unprivileged network namespaces","archived":false,"fork":false,"pushed_at":"2025-06-02T09:27:00.000Z","size":1043,"stargazers_count":876,"open_issues_count":49,"forks_count":91,"subscribers_count":14,"default_branch":"master","last_synced_at":"2026-01-03T22:33:03.957Z","etag":null,"topics":["rootless-containers","slirp","usermode-networking"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rootless-containers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY_CONTACTS","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-10T10:57:54.000Z","updated_at":"2025-12-27T21:30:24.000Z","dependencies_parsed_at":"2024-01-14T09:12:35.505Z","dependency_job_id":"558f8fa3-24e6-4e4e-8cd1-f581ac640cf3","html_url":"https://github.com/rootless-containers/slirp4netns","commit_stats":{"total_commits":361,"total_committers":21,"mean_commits":17.19047619047619,"dds":"0.39889196675900274","last_synced_commit":"ee1542e1532e6a7f266b8b6118973ab3b10a8bb5"},"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/rootless-containers/slirp4netns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootless-containers%2Fslirp4netns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootless-containers%2Fslirp4netns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootless-containers%2Fslirp4netns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootless-containers%2Fslirp4netns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rootless-containers","download_url":"https://codeload.github.com/rootless-containers/slirp4netns/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rootless-containers%2Fslirp4netns/sbom","scorecard":{"id":784633,"data":{"date":"2025-08-11","repo":{"name":"github.com/rootless-containers/slirp4netns","commit":"5af206d6c329813c53835a3b05888a0d119f1ac8"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.8,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":2,"reason":"Found 3/12 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":4,"reason":"5 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release.yaml:12","Warn: no topLevel permission defined: .github/workflows/main.yaml:1","Warn: no topLevel permission defined: .github/workflows/release.yaml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: COPYING:0","Info: FSF or OSI recognized license: GNU General Public License v2.0: COPYING:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":8,"reason":"5 out of the last 5 releases have a total of 5 signed artifacts.","details":["Info: signed release artifact: SHA256SUMS.asc: https://github.com/rootless-containers/slirp4netns/releases/tag/v1.3.3","Info: signed release artifact: SHA256SUMS.asc: https://github.com/rootless-containers/slirp4netns/releases/tag/v1.3.2","Info: signed release artifact: SHA256SUMS.asc: https://github.com/rootless-containers/slirp4netns/releases/tag/v1.3.1","Info: signed release artifact: SHA256SUMS.asc: https://github.com/rootless-containers/slirp4netns/releases/tag/v1.3.0","Info: signed release artifact: SHA256SUMS.asc: https://github.com/rootless-containers/slirp4netns/releases/tag/v1.2.3","Warn: release artifact v1.3.3 does not have provenance: https://api.github.com/repos/rootless-containers/slirp4netns/releases/222374156","Warn: release artifact v1.3.2 does not have provenance: https://api.github.com/repos/rootless-containers/slirp4netns/releases/199423338","Warn: release artifact v1.3.1 does not have provenance: https://api.github.com/repos/rootless-containers/slirp4netns/releases/155366389","Warn: release artifact v1.3.0 does not have provenance: https://api.github.com/repos/rootless-containers/slirp4netns/releases/152907008","Warn: release artifact v1.2.3 does not have provenance: https://api.github.com/repos/rootless-containers/slirp4netns/releases/140136745"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yaml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/rootless-containers/slirp4netns/main.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/rootless-containers/slirp4netns/main.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/rootless-containers/slirp4netns/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/rootless-containers/slirp4netns/release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/rootless-containers/slirp4netns/release.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/rootless-containers/slirp4netns/release.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:92: update your workflow using https://app.stepsecurity.io/secureworkflow/rootless-containers/slirp4netns/release.yaml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile.artifact:14","Warn: containerImage not pinned by hash: Dockerfile.artifact:16","Warn: containerImage not pinned by hash: Dockerfile.artifact:51","Warn: containerImage not pinned by hash: Dockerfile.buildtests:4","Warn: containerImage not pinned by hash: Dockerfile.buildtests:15","Warn: containerImage not pinned by hash: Dockerfile.buildtests:27","Warn: containerImage not pinned by hash: Dockerfile.buildtests:33","Warn: containerImage not pinned by hash: Dockerfile.buildtests:44","Warn: containerImage not pinned by hash: Dockerfile.tests:3","Warn: containerImage not pinned by hash: Dockerfile.tests:16","Warn: pipCommand not pinned by hash: Dockerfile.buildtests:18","Warn: pipCommand not pinned by hash: Dockerfile.buildtests:35","Info:   0 out of   5 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of  10 containerImage dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-23T05:45:53.426Z","repository_id":38804440,"created_at":"2025-08-23T05:45:53.427Z","updated_at":"2025-08-23T05:45:53.427Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29596329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T20:59:56.587Z","status":"ssl_error","status_checked_at":"2026-02-18T20:58:41.434Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rootless-containers","slirp","usermode-networking"],"created_at":"2024-08-01T15:01:19.539Z","updated_at":"2026-02-18T22:01:24.139Z","avatar_url":"https://github.com/rootless-containers.png","language":"C","funding_links":[],"categories":["C","others"],"sub_categories":[],"readme":"# slirp4netns: User-mode networking for unprivileged network namespaces \n\nslirp4netns provides user-mode networking (\"slirp\") for unprivileged network namespaces.\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n\n- [Motivation](#motivation)\n- [Projects using slirp4netns](#projects-using-slirp4netns)\n- [Maintenance policy](#maintenance-policy)\n- [Quick start](#quick-start)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Manual](#manual)\n- [Benchmarks](#benchmarks)\n  - [iperf3 (netns -\u003e host)](#iperf3-netns---host)\n- [Install from source](#install-from-source)\n- [Acknowledgement](#acknowledgement)\n- [License](#license)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## Motivation\n\nStarting with Linux 3.8, unprivileged users can create [`network_namespaces(7)`](http://man7.org/linux/man-pages/man7/network_namespaces.7.html) along with [`user_namespaces(7)`](http://man7.org/linux/man-pages/man7/user_namespaces.7.html).\nHowever, unprivileged network namespaces had not been very useful, because creating [`veth(4)`](http://man7.org/linux/man-pages/man4/veth.4.html) pairs across the host and network namespaces still requires the root privileges. (i.e. No internet connection)\n\nslirp4netns allows connecting a network namespace to the Internet in a completely unprivileged way, by connecting a TAP device in a network namespace to the usermode TCP/IP stack ([\"slirp\"](https://gitlab.freedesktop.org/slirp/libslirp)).\n\n## Projects using slirp4netns\n\nKubernetes distributions:\n* [Usernetes](https://github.com/rootless-containers/usernetes) (via RootlessKit)\n* [k3s](https://k3s.io) (via RootlessKit)\n\nContainer engines:\n* [Podman](https://github.com/containers/libpod)\n* [Buildah](https://github.com/containers/buildah)\n* [ctnr](https://github.com/mgoltzsche/ctnr) (via slirp-cni-plugin)\n* [Docker \u0026 Moby](https://get.docker.com/rootless) (optionally, via RootlessKit)\n* [containerd/nerdctl](https://github.com/containerd/nerdctl) (optionally, via RootlessKit)\n\nTools:\n* [RootlessKit](https://github.com/rootless-containers/rootlesskit)\n* [become-root](https://github.com/giuseppe/become-root)\n* [slirp-cni-plugin](https://github.com/mgoltzsche/slirp-cni-plugin)\n\n## Maintenance policy\n\nVersion                        | Status\n-------------------------------|------------------------------------------------------------------------\nv1.2.x                         | :white_check_mark: Active\nv1.1.x                         | End of Life (May  2, 2022)\nv1.0.x                         | End of Life (Jun  2, 2020)\nv0.4.x                         | End of Life (Sep 30, 2020)\nv0.3.x                         | End of Life (Mar 31, 2020)\nv0.2.x                         | End of Life (Aug 30, 2019)\nEarly versions prior to v0.2.x | End of Life (Jan  5, 2019)\n\nSee https://github.com/rootless-containers/slirp4netns/releases for the releases.\n\n### Security advisories\nSee https://github.com/rootless-containers/slirp4netns/security/advisories for the past security advisories.\n\n:warning: We had been collecting [the vulnerabilities of QEMU/libslirp](https://www.cvedetails.com/product/57329/Libslirp-Project-Libslirp.html?vendor_id=20192) in this slirp4netns repo until the end of 2020,\nas the slirp4netns releases prior to v1.0.0 were always statically linked with a specific version of QEMU/libslirp.\nStarting with 2021, the vulnerabilities of libslirp are no longer collected in this slirp4netns repo, as slirp4netns \u003e= v1.0.0 can be linked with an arbitrary version of libslirp.\n\n\u003cdetails\u003e\n\u003csummary\u003e Run \u003ccode\u003eslirp4netns --version\u003c/code\u003e to check the version of the linked libslirp. \u003c/summary\u003e\n\n\u003cp\u003e\n\n```console\n$ slirp4netns --version\nslirp4netns version 1.1.8\ncommit: d361001f495417b880f20329121e3aa431a8f90f\nlibslirp: 4.4.0\nSLIRP_CONFIG_VERSION_MAX: 3\nlibseccomp: 2.4.3\n```\n\n\u003c/p\u003e\n\n\u003c/details\u003e\n\n## Quick start\n\n### Install\n\nStatically linked binaries available for x86\\_64, aarch64, armv7l, s390x, ppc64le, and riscv64: https://github.com/rootless-containers/slirp4netns/releases\n\nAlso available as a package on almost all Linux distributions:\n* [RHEL/CentOS (since 7.7 and 8.0)](https://pkgs.org/search/?q=slirp4netns)\n* [Fedora (since 28)](https://src.fedoraproject.org/rpms/slirp4netns)\n* [Arch Linux](https://www.archlinux.org/packages/community/x86_64/slirp4netns/)\n* [openSUSE (since Leap 15.0)](https://build.opensuse.org/package/show/openSUSE%3AFactory/slirp4netns)\n* [SUSE Linux Enterprise (since 15)](https://build.opensuse.org/package/show/devel%3Akubic/slirp4netns)\n* [Debian GNU/Linux (since 10.0)](https://packages.debian.org/buster/slirp4netns) \n* [Ubuntu (since 19.04)](https://packages.ubuntu.com/search?keywords=slirp4netns)\n* [NixOS](https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/networking/slirp4netns)\n* [Gentoo Linux](https://packages.gentoo.org/packages/app-emulation/slirp4netns)\n* [Slackware](https://git.slackbuilds.org/slackbuilds/tree/network/slirp4netns)\n* [Void Linux](https://github.com/void-linux/void-packages/tree/master/srcpkgs/slirp4netns)\n* [Alpine Linux (since 3.14)](https://pkgs.alpinelinux.org/packages?name=slirp4netns)\n\ne.g.\n\n```console\n$ sudo apt-get install slirp4netns\n```\n\nTo install slirp4netns from the source, see [Install from source](#install-from-source).\n\n### Usage\n\n**Terminal 1**: Create user/network/mount namespaces\n\n```console\n(host)$ unshare --user --map-root-user --net --mount\n(namespace)$ echo $$ \u003e /tmp/pid\n```\n\nIn this documentation, we use `(host)$` as the prompt of the host shell, `(namespace)$` as the prompt of the shell running in the namespaces.\n\nIf `unshare` fails, try the following commands (known to be needed on Debian, Arch, and old CentOS 7.X):\n\n```console\n(host)$ sudo sh -c 'echo \"user.max_user_namespaces=28633\" \u003e\u003e /etc/sysctl.d/userns.conf'\n(host)$ [ -f /proc/sys/kernel/unprivileged_userns_clone ] \u0026\u0026 sudo sh -c 'echo \"kernel.unprivileged_userns_clone=1\" \u003e\u003e /etc/sysctl.d/userns.conf'\n(host)$ sudo sysctl --system\n```\n\n**Terminal 2**: Start slirp4netns\n\n```console\n(host)$ slirp4netns --configure --mtu=65520 --disable-host-loopback $(cat /tmp/pid) tap0\nstarting slirp, MTU=65520\n...\n```\n\n**Terminal 1**: Make sure the `tap0` is configured and connected to the Internet\n\n```console\n(namespace)$ ip a\n1: lo: \u003cLOOPBACK\u003e mtu 65536 qdisc noop state DOWN group default qlen 1000\n    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n3: tap0: \u003cBROADCAST,UP,LOWER_UP\u003e mtu 65520 qdisc fq_codel state UNKNOWN group default qlen 1000\n    link/ether c2:28:0c:0e:29:06 brd ff:ff:ff:ff:ff:ff\n    inet 10.0.2.100/24 brd 10.0.2.255 scope global tap0\n       valid_lft forever preferred_lft forever\n    inet6 fe80::c028:cff:fe0e:2906/64 scope link \n       valid_lft forever preferred_lft forever\n(namespace)$ echo \"nameserver 10.0.2.3\" \u003e /tmp/resolv.conf\n(namespace)$ mount --bind /tmp/resolv.conf /etc/resolv.conf\n(namespace)$ curl https://example.com\n```\n\n## Manual\n\nManual: [`slirp4netns.1.md`](slirp4netns.1.md)\n\n* [Description](./slirp4netns.1.md#description)\n* [Options](./slirp4netns.1.md#options)\n* [Example](./slirp4netns.1.md#example)\n* [Routing ping packets](./slirp4netns.1.md#routing-ping-packets)\n* [API socket](./slirp4netns.1.md#api-socket)\n* [Defined namespace paths](./slirp4netns.1.md#defined-namespace-paths)\n* [Outbound addresses](./slirp4netns.1.md#outbound-addresses)\n* [Inter-namespace communication](./slirp4netns.1.md#inter-namespace-communication)\n* [Inter-host communication](./slirp4netns.1.md#inter-host-communication)\n* [Bugs](./slirp4netns.1.md#bugs)\n\n## Benchmarks\n\n### iperf3 (netns -\u003e host)\n\nAug 28, 2018, on [RootlessKit](https://github.com/rootless-containers/rootlesskit) Travis: https://github.com/rootless-containers/rootlesskit/pull/16\n\nImplementation |  MTU=1500  |  MTU=4000  |  MTU=16384  |  MTU=65520\n---------------|------------|------------|-------------|------------\nvde_plug       |  763 Mbps  |Unsupported | Unsupported | Unsupported\nVPNKit         |  514 Mbps  |  526 Mbps  |   540 Mbps  | Unsupported\nslirp4netns    | 1.07 Gbps  | 2.78 Gbps  |  4.55 Gbps  |  9.21 Gbps\n\nslirp4netns is faster than [vde_plug](https://github.com/rd235/vdeplug_slirp) and [VPNKit](https://github.com/moby/vpnkit) because slirp4netns is optimized to avoid copying packets across the namespaces.\n\nThe latest revision of slirp4netns is regularly benchmarked (`make benchmark`) on [CI](https://github.com/rootless-containers/slirp4netns/actions?query=workflow%3AMain).\n\n## Install from source\n\nBuild dependencies (`apt-get`):\n\n```console\n$ sudo apt-get install libglib2.0-dev libslirp-dev libcap-dev libseccomp-dev\n```\n\nBuild dependencies (`dnf`):\n\n```console\n$ sudo dnf install glib2-devel libslirp-devel libcap-devel libseccomp-devel\n```\n\nInstallation steps:\n\n```console\n$ ./autogen.sh\n$ ./configure --prefix=/usr\n$ make\n$ sudo make install\n```\n\n* [libslirp](https://gitlab.freedesktop.org/slirp/libslirp) needs to be v4.1.0 or later.\n* To build `slirp4netns` as a static binary, run `./configure` with `LDFLAGS=-static`.\n* If you set `--prefix` to `$HOME`, you don't need to run `make install` with `sudo`.\n\n## Acknowledgement\nSee [`vendor/README.md`](./vendor/README.md).\n\n## License\n[GPL-2.0-or-later](COPYING)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frootless-containers%2Fslirp4netns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frootless-containers%2Fslirp4netns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frootless-containers%2Fslirp4netns/lists"}