---
# System prepended metadata

title: Release Notes - v0.16.3

---

:::info
To generate the feature list:

```bash
gh pr list -s closed -L 100 --search "is:pr is:closed closed:>2024-02-14" --json author,title,number --template '{{range .}}{{ printf "* %s (#%v) by @%s\n" .title .number .author.login }}{{end}}'
```

To generate the list of reviewers:

```bash
git --no-pager log --format="* %(trailers:key=Reviewed-by,valueonly,separator=%x2C )" --abbrev-commit HEAD...RELEASE-0.16.3 | sed 's/, /\n* /g' | sort -u
```
:::

:::danger
before submitting, please search the document for "TODO", "commit"
:::

[toc]

## GitHub Release Note

We are proud to announce the latest version update of Unikraft, v0.16.3!

This release comes with many fixes and updates to the [application catalog](https://github.com/unikraft/catalog) and to the [documentation](https://github.com/unikraft/docs).

Here is the full updates list in this release:

* `arch/arm64`: Update asm constraints in `mte_insert_random_tag()` (#1361) by @michpappas
* `doc`: Update kraft link in `README.md` (#1359) by @PorridgeSwim
* `lib/posix-futex`: Clear thread's objects upon thread exit (#1358) by @michpappas
* `lib/posix-time`: Support `CLOCK_REALTIME_COARSE` (#1355) by @andreittr
* `lib/posix-socket`: Add `LIBPOSIX_FDIO` config dependency (#1354) by @michpappas
* `drivers/ukbus/platform`: Make `UKBUS_PLATFORM_FDT` conditional to parent (#1353) by @michpappas
* `lib/posix-environ`: Deduplicate env variables during boot (#1352) by @skuenzer
* `scripts/checkpatch`: Do not warn about symbolic permissions (#1351) by @skuenzer
* `drivers/virtio`: Replace libc types with unikraft defined (#1345) by @rares-miculescu
* `drivers/ukintctlr`: Replace libc types with unikraft defined (#1344) by @rares-miculescu
* `drivers/ukbus`: Replace libc types with unikraft defined (#1343) by @rares-miculescu
* `checkpatch`: Additional updates for compliance to coding style (#1342) by @michpappas
* `lib/posix-poll`: Fix missing `epoll` file locking (#1338) by @andreittr
* `lib/ukvmem/arch`: Do not print error message if demand paging disabled (#1334) by @mogasergiu
* `lib/nolibc`: Include `htonl()` and `ntohl()` functions (#1332) by @mschlumpp
* `lib/ukintctlr`: Simplify the interface of `ukintctlr_platform_probe()` (#1330) by @michpappas
* `drivers/virtio/net`: Ensure half-page alignment for `netbuf` (#1328) by @mogasergiu
* `lib/nolibc`: Provide `fd` functions without `vfscore` (#1327) by @andreittr
* `lib/posix-unixsocket`: Fix `NULL` deref crash (#1326) by @andreittr
* `lib/posix-sysinfo`: Use a more Linux compatible release string (#1325) by @mschlumpp
* `lib/posix-time`: Alias `CLOCK_MONOTONIC_RAW` to `CLOCK_MONOTONIC` (#1324) by @mschlumpp
* `plat/kvm/x86`: Fix {`XSAVE`,`AVX`,`FSGSBASE`} checking/enabling behavior (#1323) by @mogasergiu
* `lib/uksched`: Add `membarrier` syscall (#1321) by @andreittr
* `lib/vfscore`: Ensure we return symlink target on `namei_resolve` (#1320) by @mogasergiu
* `driver/virtio/blk`: Ensure request header stays in-page boundaries **AND** some minor sglist cleanup (#1290) by @mogasergiu
* `lib/uknetdev`: Add a interface for TCP segmentation offload (#1030) by @mschlumpp
* `[app-elfloader]`: Consider environment variables `PATH` and `PWD` (#75) by @skuenzer
* `[app-elfloader]`: Ensure `args`, `env` and `auxv` strings are in the information block (#71) by @mogasergiu
* `[app-helloworld-cpp]`: README: Add reference to active repository (#25) by @feohuman
* `[app-helloworld]`: README: Add reference to active repository (#36) by @feohuman
* `[app-helloworld]`: Fix verbose build issue by modifying makefile (#16) by @ranfun
* `[app-httpreply]`: README: Add reference to active repository (#21) by @feohuman
* `[app-lua]`: README: Add reference to active repository (#13) by @feohuman
* `[app-nginx]`: README: Redirect to active repository (#24) by @feohuman
* `[app-redis]`: README: Add reference to active repository (#24) by @feohuman
* `[app-sqlite]`: README: Add reference to active repository (#14) by @feohuman
* `[lib-lwip]`: Ignore `SO_LINGER` socket option (#51) by @mogasergiu
* `[lib-musl]`: `libsched`: Add `sys/membarrier.h` to provided headers (#75) by @andreittr

Updates to the application [`catalog`](https://github.com/unikraft/catalog):

* feat(examples): Add Node 21 Prisma example (#104) by @razvand
* feat(examples): Update helloworld-rs (#97) by @razvand
* feat(node18): Use alpine Dockerfile (#95) by @razvand
* fix(library): Add user-provided EINITRD support (#94) by @razvand
* feat(examples): Introduce Caddy example (#93) by @razvand
* fix(examples): Update some examples to newer README.md format (#92) by @felipehuici
* feat(examples): Add examples and have others use runtime directive (#91) by @felipehuici
* feat(examples): Introduce HTTP Node21 example (#90) by @razvand
* feat(library): Introduce NodeJS 21 as library (#83) by @razvand
* feat(library): Introduce NodeJS 20 as library (#82) by @razvand
* feat(library): Introduce NodeJS 19 as library (#81) by @razvand
* feat(examples): Add Redis example (#78) by @felipehuici
* feat(examples): Add Hugo, C++ Boost, DuckDB and Flask examples (#76) by @felipehuici
* feat(examples): Add Memcached example (#74) by @felipehuici
* feat(examples): Add PHP example (#73) by @felipehuici
* feat(examples): Add Ruby and Perl examples (#71) by @felipehuici
* feat(examples): Add Rust examples (#69) by @felipehuici
* fix(examples): Improve http-python3.10 README (#68) by @razvand
* fix(examples): Improve README for http-python3.10 (#63) by @felipehuici
* fix(examples): Improve README for http-python3.10 (#62) by @razvand
* docs(redis/7.0): Indicate min memory requirement (#59) by @ChaoyiHuang
* feat(examples): Add Node Prisma example (#56) by @razvand
* feat(examples): Introduce HTTP Flask server as example (#55) by @razvand
* feat(library): Introduce Hugo 0.122 as library (#53) by @razvand
* feat(library): Introduce Memcached 1.6 as library (#49) by @razvand
* feat(library): Introduce Perl 5.38 as library (#28) by @razvand
* feat(library): Introduce PHP as library (#24) by @razvand
* feat(library): Introduce Ruby as library (#23) by @razvand
* feat(native): add tiny-http Rust server (#20) by @mkroening
* feat(library): Introduce Skipper 0.18 (#15) by @razvand
* feat(library): Add support for Caddy (#12) by @razvand

A big thank you also to all those who helped in the [review process](unikraft.org/docs/contributing/review-process/): [Alexander Jung](https://github.com/nderjung), [Andrei Tatar](https://github.com/andreittr), [Cezar Craciunoiu](https://github.com/craciunoiuc), [Delia Pavel](https://github.com/DeliaPavel), [Eduard Vintilă](https://github.com/eduardvintila), [Felipe Huici](https://github.com/felipehuici), [Florin Postolache](https://github.com/flpostolache), [Marco Schlumpp](https://github.com/mschlumpp), [Maria Pana](https://github.com/mariapana), [Maria Sfiraiala](https://github.com/mariasfiraiala), [Michalis Pappas](https://github.com/michpappas), [Mihnea Firoiu](https://github.com/Mihnea0Firoiu), [Oleksii Moisieiev](https://github.com/oleksiimoisieiev), [Radu Nichita](https://github.com/RaduNichita), [Razvan Deaconescu](https://github.com/razvand), [Razvan Virtan](https://github.com/razvanvirtan), [Sergiu Moga](https://github.com/mogasergiu), [Simon Kuenzer](https://github.com/skuenzer), [Stefan Jumarea](https://github.com/StefanJum).

---

For more information, check out [the accompanying blog post](https://unikraft.org/blog/2024-03-20-unikraft-releases-v0.16.3) or [view the full changelog](https://github.com/unikraft/unikraft/compare/RELEASE-0.16.2...RELEASE-0.16.3).

---

## Twitter

Unikraft v0.16.3 is here! 🚀

Check out the blog post for details on the latest changes: https://unikraft.org/blog/2024-03-20-unikraft-releases-v0.16.3

---

## LinkedIn

Unikraft v0.16.3 is here! 🚀

It add plenty of fixes to improve application support and adds Xen support for ARM64.

Check out the blog post for details on the latest changes (https://unikraft.org/blog/2024-03-20-unikraft-releases-v0.16.3) and join us on GitHub (https://github.com/unikraft/) and on Discord (https://bit.ly/UnikraftDiscord).

---

## Blog Post

We are proud to announce the latest version of Unikraft, v0.16.3!

This is a fix release, primarily focused on fixes, documentation updates and the addition of new applications.:

### Application Catalog

_This feature was championed by [Felipe Huici](https://github.com/felipehuici) and [Răzvan Deaconescu](https://github.com/razvand) with feedback from [Ștefan Jumărea](https://github.com/StefanJum) and [Mihnea Firoiu](https://github.com/Mihnea0Firoiu)._

The [`catalog`](https://github.com/unikraft/catalog) has been populated with additional applications and examples.
This has been complemented by updates to documentation, both in the form of website updates and `README` updates in the catalog entries.

Feel free to try existing applications and examples and add your own to the catalog.

### Documentation and Website Updates

_This feature was championed by [Felipe Huici](https://github.com/felipehuici) and [Alexander Jung](https://github.com/nderjung) with feedback from [Răzvan Deaconescu](https://github.com/razvand)._

Documentation and [website](https://unikraft.org/) layout have been updated to focus more on the [application `catalog`](https://github.com/unikraft/catalog).
We fixed missing links, made corrections to guides, revamped the landing page, added application icons.

### Community Activities

#### Monthly Hackathon

We continue organizing monthly hackathons, generally taking place in the last Saturday of each month.
Hackathons take place both online and in person, generally at the National University of Science and Technology POLITEHNICA of Bucharest.

We organized a monthly hackathon on Saturday, March 2, 2024.
It was targeted on the 0.16.3 release, focused on documentation and [`catalog`](https://github.com/unikraft/catalog) updates.
Main outcomes of the hackathon were:

* the archiving of old `app-...` repositories and referencing the [`catalog`](https://github.com/unikraft/catalog) repository
* updates to instructions related to publishing the [`docs`](https://github.com/unikraft/docs) repository (used as the backing store for the [website](https://unikraft.org/))
* testing and fixes in the [`catalog`](https://github.com/unikraft/catalog) repository

The next monthly hackathon is scheduled to take place on Saturday, March 30, 2024.

### Applying for GSoC'24

GSoC'24 (Google Summer of Code 2024) applications are open since Monday, March 18, 2024.
The deadline is Tuesday, April 2, 2024, 18:00 UTC.
See the [Google Summer of Code 2024 Timeline](https://developers.google.com/open-source/gsoc/timeline).

We encourage you to apply, work on challenging low-level and tooling projects, and be part of the technical Unikraft community.

As a future applicant, please do the following

* Visit the [Unikraft GSoC'24 page](https://github.com/unikraft/gsoc/tree/staging/gsoc-2024) for full details
* Connect to the community on the [Discord server](https://bit.ly/UnikraftDiscord):
  introduce yourself, talk to mentors, ask questions, be part of discussions
* Get accustomed to the Unikraft development ecosystem, by trying out applications in the [`catalog`](https://github.com/unikraft/catalog), and by following the [guides](https://unikraft.org/guides)
* Make a small contribution, in the form of fixes, build warning removal, documentation updates or anything that's easy to pick up to get your started
  When making a contribution, be sure to check the [submission guidelines](https://unikraft.org/docs/contributing/unikraft)
* Decide on a GSoC project:
  you can pick [a community-proposed idea](https://github.com/unikraft/gsoc/blob/staging/gsoc-2024/ideas.md) or come up with an idea by yourself
* Fill out an application starting from the [Google Document template](https://docs.google.com/document/d/1TjoRgWMTjB114QlRVc7N5rZ6rswUzEN-JS-G_gB0Bso/edit?usp=sharing)

Best of luck!