A general purpose TCP-IP emulator used by virtual machine hypervisors to provide virtual networking services.
Find a file
Samuel Thibault 4ddbcd5cc4 Merge branch 'uefi-https' into 'master'
bootp: allow https for UEFI HTTP boot

See merge request slirp/libslirp!156
2026-01-28 12:10:31 +00:00
build-aux meson: remove meson-dist script 2020-09-14 21:44:27 +02:00
fuzzing Windows target build fixes 2025-01-30 02:31:26 +01:00
src bootp: allow https for UEFI HTTP boot 2026-01-28 12:29:50 +01:00
test Restore SlirpAddPollCb, {,un}register_poll_fd 2024-10-09 00:52:24 +02:00
.clang-format remove qtailq.h 2019-03-28 20:24:12 +09:00
.gitignore Add /build/ to .gitignore 2021-02-23 15:02:37 -08:00
.gitlab-ci.yml fuzz: Add ARP and NDP cases 2024-04-25 23:32:11 +02:00
.gitpublish Add a git-publish configuration file 2019-12-30 09:45:32 +01:00
CHANGELOG.md Release v4.9.1 2025-05-28 00:38:05 +02:00
COPYRIGHT Move the modified 3-Clause BSD text into LICENSE 2025-09-08 19:32:32 +02:00
LICENSE Move the modified 3-Clause BSD text into LICENSE 2025-09-08 19:32:32 +02:00
meson.build Release v4.9.1 2025-05-28 00:38:05 +02:00
meson_options.txt meson: use boolean defaults for boolean options 2025-02-02 15:24:14 -08:00
README.md Mention how to get debugging prints 2025-06-06 13:14:15 +02:00

libslirp

libslirp is a user-mode networking library used by virtual machines, containers or various tools.

Getting Started

Prerequisites

A C compiler, meson and glib2 development libraries.

(see also .gitlab-ci.yml DEPS variable for the list of dependencies on Fedora)

Building

You may build and install the shared library with meson:

meson build
ninja -C build install

And configure QEMU with --enable-slirp=system to link against it.

(QEMU may build with the submodule static library using --enable-slirp=git)

Testing

Unfortunately, there are no automated tests available.

You may run QEMU -net user linked with your development version.

Contributing

Feel free to open issues on the project issues page.

You may clone the gitlab project and create a merge request.

Contributing with gitlab allows gitlab workflow, tracking issues, running CI etc.

Alternatively, you may send patches to slirp@lists.freedesktop.org mailing list.

Debugging

To make slirp emit debugging prints, one can use for instance:

export G_MESSAGES_DEBUG=Slirp
export SLIRP_DEBUG=call

SLIRP_DEBUG can contain a colons/spaces/commas-separated list of call, misc, error, tftp, verbose_call

Versioning

We intend to use libtool's versioning for the shared libraries and use SemVer for project versions.

For the versions available, see the tags on this repository.

License

See the COPYRIGHT file for details.