DocsReleasesCommunityGuidesBlog

v0.15.0 (Pandora)

Sun Oct 22 2023

97523b55ac9e

View Changelog

We are proud to announce the latest version update of Unikraft, v0.15.0! This release brings important new features and further improvements and stabilizing to the previous release (0.14.0 - Prometheus). It adds new features, a healthy number of fixes and it enhances application support.

Here is the full updates list:

🚀 New Features#

  • Improved application documentation and support scripts
    • [app-click]: Add configuration files and run scripts (#5 by @StefanJum
    • [app-click]: Port app-click to use musl (#4 by @MekalBoy
    • [app-duktape]: Update setup for developer-centric scripts (#10 by @razvand
    • [app-duktape]: Add Musl support (#9 by @razvand
    • [app-duktape]: Added Makefile and Makefile.uk to duktape, including the necessary li… (#7 by @justin9939
    • [app-duktape]: lib/duktape: port to musl addresses: [#3 (#6](https://github.com/unikraft/app-duktape/pull/3 (#6) by @JoachimBose
    • [app-helloworld-cpp]: README.md: Use correct Firecracker JSON file name (#22 by @razvand
    • [app-helloworld-cpp]: Stefan jum/add dev content (#21 by @StefanJum
    • [app-helloworld-cpp]: Add KraftKit configuration file for KraftCloud (#20 by @razvand
    • [app-helloworld-cpp]: kraft.yaml: Fix contents (#19 by @razvand
    • [app-helloworld-go]: Add networking support for Go applications (#11 by @razvand
    • [app-helloworld-go]: Add KraftKit configuration file for KraftCloud (#10 by @razvand
    • [app-helloworld]: Makefile: Remove lwip (#30 by @razvand
    • [app-helloworld]: Makefile: Remove lwip (#29 by @razvand
    • [app-helloworld]: Testlib fxdiv (#28 by @SumairShergill
    • [app-helloworld]: lib/update/test: added library (#27 by @SumairShergill
    • [app-helloworld]: lib-intx upadate v0.10.0 (#26 by @ZackYe42
    • [app-helloworld]: Stefan jum/add dev content (#25 by @StefanJum
    • [app-helloworld]: Add KraftKit configuration file for KraftCloud (#23 by @razvand
    • [app-httpreply]: README.md: Update documentation (#20 by @razvand
    • [app-httpreply]: Stefan jum/add dev content (#19 by @StefanJum
    • [app-httpreply]: Add KraftKit configuration file for KraftCloud (#18 by @razvand
    • [app-lua]: Stefan jum/add dev content (#12 by @StefanJum
    • [app-lua]: Add KraftKit configuration file for KraftCloud (#11 by @razvand
    • [app-lua]: Makefile: Port app-lua to use musl (#6 by @panagiotiskon
    • [app-nginx]: README.md: Fix repeating words (#22 by @Mihnea0Firoiu
    • [app-nginx]: README.md: Update README (#20 by @razvand
    • [app-nginx]: Stefan jum/add dev content (#17 by @StefanJum
    • [app-nginx]: Add KraftKit configuration file for KraftCloud (#16 by @razvand
    • [app-python3]: README.md: Fix typo (#24 by @gabrielpitic
    • [app-python3]: README.md: Update kraft run command (#23 by @SorinAlexB
    • [app-python3]: Update setup for developer-centric scripts (#21 by @razvand
    • [app-python3]: kraft.cloud.yaml: Add networking support (#20 by @razvand
    • [app-python3]: Simplify root filesystem (#19 by @razvand
    • [app-python3]: Add KraftKit configuration file for KraftCloud (#18 by @razvand
    • [app-python3]: kraft.yaml: Update libraries order (#14 by @StefanJum
    • [app-redis]: Update Redis app directory (#20 by @razvand
    • [app-redis]: Add kraft.cloud.yaml (#19 by @razvand
    • [app-run-app-elfloader]: Add new applications and use fs1 as 9p index (#18 by @razvand
    • [app-run-app-elfloader]: Update prebuilt images to Unikraft 0.14 (#17 by @razvand
    • [app-run-app-elfloader]: [run.sh] Let user use custom QEMU arguments (#11 by @costinsin
    • [app-sqlite]: Stefan jum/add dev content (#13 by @StefanJum
    • [app-sqlite]: Add KraftKit configuration file for KraftCloud (#12 by @razvand
    • [app-testing]: Introduce generate.py script (#4 by @razvand
    • [app-wamr]: Update setup for developer-centric scripts (#7 by @razvand
    • [app-wamr]: Update README.md (#6 by @chococandy63
    • [app-wamr]: add makefile, makefile.uk (#4 by @akouk
    • [run-app-elfloader]: Add new applications and use fs1 as 9p index (#18 by @razvand
    • [run-app-elfloader]: Update prebuilt images to Unikraft 0.14 (#17 by @razvand
    • [run-app-elfloader]: [run.sh] Let user use custom QEMU arguments (#11 by @costinsin
    • [lib-click]: Update lib click to the latest Unikraft version (#7 by @StefanJum
    • [lib-wamr]: patches: Remove patch 0005: main adaptation (#9 by @razvand
    • [lib-wamr]: base to pbase (#2 by @akouk
  • Improved Python support
    • [lib-python-numpy]: Makefile.uk: Fix internal build include paths (#2 by @andreittr
    • [lib-python-pillow]: Port upstream Pillow 10.0.0 (#1 by @andreittr
    • [lib-python3]: Add support for the Pillow extension (#22 by @andreittr
    • [lib-python3]: Makefile.uk: Supress warnings (#21 by @andreittr
    • [lib-python3]: Enable the mmap stdlib module (#20 by @andreittr
    • [lib-python3]: Makefile.uk: Fix generated header include path (#19 by @andreittr
    • [lib-python3]: patches: Fix ctypes import error (#18 by @andreittr
    • [lib-python3]: Introduce Library.uk (#14 by @nderjung
  • Extended application support
    • [dynamic-apps]: Add sed pre-built binary (#103 by @gabrielpitic
    • [dynamic-apps]: Add awk PIE build (#102 by @andreistan26
    • [dynamic-apps]: README.md: Fix "dyamic" typo (#101 by @SorinAlexB
    • [dynamic-apps]: Add tar pre-built binary (#100 by @gabrielpitic
    • [dynamic-apps]: lang/go: Update libraries for helloworld (#99 by @razvand
    • [dynamic-apps]: nginx: Ingore generated files (#98 by @razvand
    • [dynamic-apps]: gzip: Use input.txt as input file (#97 by @razvand
    • [dynamic-apps]: extract.sh: Simplify script (#96 by @razvand
    • [dynamic-apps]: openssl: Update binary and libraries (#95 by @razvand
    • [dynamic-apps]: bzip2: Use input.txt as input file (#94 by @razvand
    • [dynamic-apps]: lang/go: Rename client-server to client_server (#93 by @razvand
    • [dynamic-apps]: Add Python helloworld (#92 by @razvand
    • [dynamic-apps]: imagemagick: Remove duplicate libraries (#91 by @StefanJum
    • [dynamic-apps]: Add curl into dynamic apps (#86 by @cozkul
    • [dynamic-apps]: added wget to dynamic-apps (#83 by @sinamhdv
    • [dynamic-apps]: Add du linux app (#82 by @hadisinaee
    • [dynamic-apps]: app/linux: add md5sum (#81 by @Moh3nsalehi
    • [dynamic-apps]: add blackjack example for c++ (#78 by @br-zhou
    • [dynamic-apps]: adding unzip to dynamic-apps (#74 by @Moh3nsalehi
    • [dynamic-apps]: adding netcat to dynamic apps (#73 by @hadisinaee
    • [dynamic-apps]: Grep: Add grep dynamic executable (#71 by @chococandy63
    • [dynamic-apps]: imagemagick: Add magick command (#70 by @TiagoRG
    • [dynamic-apps]: imagemagick: convert command (#69 by @GuilhermeVieiraDev
    • [dynamic-apps]: lang: Add Linux pre-built Python interpreter (#68 by @razvand
    • [dynamic-apps]: lang/python: Add HTTP server program (#67 by @razvand
    • [dynamic-apps]: lang/go: Add simple HTTP program (#66 by @razvand
    • [dynamic-apps]: lang/c++: Add simple HTTP program (#65 by @razvand
    • [dynamic-apps]: lang/c: Add simple HTTP program (#64 by @razvand
    • [dynamic-apps]: Add busybox 1.36.1 (#63 by @StefanJum
    • [dynamic-apps]: lang/rust: Introduce simple HTTP server (#62 by @razvand
    • [dynamic-apps]: Add nats-server application build from source (#58 by @SHOREQU69
    • [dynamic-apps]: Add GnuPG dynamic application built from source (#57 by @andreistan26
    • [dynamic-apps]: Add ffmpeg-source (#55 by @razvang0307
    • [dynamic-apps]: Add GnuPG 2.4.3 (#52 by @mtimaN
    • [dynamic-apps]: Add ffmpeg 5.1.2 (#49 by @timmmyeo
    • [dynamic-apps]: Add busybox 1.36.1 (#17 by @i-Pear
    • [dynamic-apps]: Add perl 5.36 (#14 by @LucaSeri
    • [dynamic-apps]: Add NodeJS 18.15.0 (#10 by @maniatro111
    • [app-elfloader]: Add lang/c/http_server to run.yaml (#60 by @ALEX11BR
    • [app-elfloader]: Add du to run.yaml (#59 by @valudimi
    • [app-elfloader]: Add GnuPG to run.yaml (#58 by @ALEX11BR
    • [app-elfloader]: Add du to run.yaml (#56 by @valudimi
    • [app-elfloader]: Add gzip to run.yaml (#55 by @ALEX11BR
    • [app-elfloader]: Make VDSO creation work for cross-compilation and Darwin (#54 by @skuenzer
    • [app-elfloader]: Update scripts (#53 by @razvand
    • [app-elfloader]: Added support for openssl to run.yaml (#52 by @sinamhdv
    • [app-elfloader]: Added curl config into run.yaml (#42 by @cozkul
    • [app-elfloader]: Added support for running echo by modifying run.yaml (#41 by @JackieHam
    • [app-elfloader]: Made changes to run.yaml file to support running bzip2 application (#39 by @JackieHam
    • [app-elfloader]: Add ls to run.yaml (#37 by @willgao23
    • [app-elfloader]: Add node and gnupg to run.yaml (#33 by @SorenEricMent
    • [app-elfloader]: scripts: Add support for running http_server-cpp (#32 by @chococandy63
    • [app-elfloader]: scripts: Add support for running helloworld-cpp (#31 by @willgao23
    • [app-elfloader]: Add sqlite3 to run.yaml (#30 by @SorenEricMent
    • [app-elfloader]: mmap each ELF segment if CONFIG_LIBPOSIXMMAP is enabled (#28 by @mogasergiu
    • [app-elfloader]: Add developer-centric contents (#27 by @razvand
    • [app-elfloader]: Add KraftKit configuration files (#26 by @razvand
    • [lib-cairo]: Port upstream Cairo 1.17.8 (#1 by @andreittr
    • [lib-fribidi]: Port upstream Fribidi 1.0.13 (#1 by @andreittr
    • [lib-giflib]: Port upstream GIFLIB 5.2.1 ([#1 by @andreittr
    • [lib-harfbuzz]: Port upstream HarfBuzz 8.1.1 (#1 by @andreittr
    • [lib-libdeflate]: Port upstream libdeflate 1.18 (#1 by @andreittr
    • [lib-libtiff]: Port upstream libtiff 4.5.1 (#3 by @andreittr
    • [lib-libwebp]: Port upstream libwebp 1.3.1 (#1 by @andreittr
    • [lib-littlecms]: Port upstream LittleCMS 2.15 (#1 by @andreittr
    • [lib-openjpeg]: Port upstream OpenJPEG 2.5.0 (#3 by @andreittr
    • [lib-pixman]: Port upstream pixman 0.42.2 (#1 by @andreittr
    • [lib-python-pillow]: Port upstream Pillow 10.0.0 (#1 by @andreittr
    • [lib-raqm]: Port upstream Raqm 0.10.1 (#1 by @andreittr
    • [lib-xz]: Port upstream xz 5.4.4 (#1 by @andreittr
    • [lib-zstd]: Port upstream zstd 1.5.5 (#1 by @andreittr
  • Steps towards library versioning (Library.uk)
  • Firecracker networking support + modern virtio
  • Initial ARM64 binary compatibility support
    • arch/arm64: Support AArch64 binary syscalls (#1009 by @i-Pear
    • arch/arm64: Fix dependency for arm64_syscall_adapter (#1132 by @i-Pear
    • [app-elfloader]: feat: Support AArch64 architecture (#24 by @i-Pear
  • Re-arch drivers
  • plat/kvm: Adapt EFI boot to new APIC driver (#1138 by @kha-dinh
  • build, scripts: Ensure using GNU coreutils on Darwin (#1109 by @skuenzer
  • support/scripts: mkcpio: Support Darwin (MacOS) environments (#1078 by @skuenzer
  • build: Support replacing internal libraries (#1104 by @skuenzer
  • drivers/virtio: Implement support for event index notification suppression (#1089 by @mschlumpp
  • {lib/uknetdev,drivers/virtio}: Add support for IPv4/TCP segmentation offloading (#1088 by @mschlumpp
  • lib/ukintctlr: Introduce uk_intctlr API - Re-arch IRQ handling (#1103 by @michpappas

🐛 Bug Fixes & Improvements#

A big thank you also to all those who helped in the review process: Adina-Maria Vaman, Andra Paraschiv, Andrei Tatar, Andrei Topală, Cezar Crăciunoiu, Delia Pavel, Eduard Vintilă, Eduard-Florin Mihăilescu, Ioan-Teodor Țeugea, Jakub Ciolek, Marco Schlumpp, Maria Sfîrăială, Michalis Pappas, Radu Nichita, Rareș Miculescu, Răzvan Deaconescu, Răzvan Vîrtan, Robert Kuban, Sergiu Moga, Simon Kuenzer, Ștefan Jumarea, Tianyi Liu.

Connect with the community

Feel free to ask questions, report issues, and meet new people.

Join us on Discord!
®

Getting Started

What is a unikernel?Install CLI companion toolUnikraft InternalsRoadmap

© 2024  The Unikraft Authors. All rights reserved. Documentation distributed under CC BY-NC 4.0.