Skip to content
This repository was archived by the owner on Jul 17, 2023. It is now read-only.
/ pykraft Public archive

Python library for configuring and building unikernels

License

Notifications You must be signed in to change notification settings

unikraft/pykraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c648d2e · Dec 9, 2022
Nov 7, 2021
Aug 29, 2019
Apr 7, 2022
Mar 16, 2022
Mar 21, 2022
May 4, 2020
Apr 30, 2020
Mar 28, 2020
Mar 30, 2021
Nov 2, 2021
Dec 18, 2019
Dec 18, 2019
Feb 11, 2020
Dec 14, 2020
Jun 29, 2021
Dec 9, 2022
Mar 30, 2021
Mar 30, 2021
Mar 30, 2021
Jun 28, 2021
May 4, 2020

Repository files navigation

Project no longer maintained

⚠️ To begin using Unikraft please refer to KraftKit which is the companion tool used for defining, configuring, building, and running Unikraft applications.
This project will be renamed to https://github.com/unikraft/pykraft.git on February 1st 2023.

pykraft: Python3 Bindings for Unikraft

The pykraft python library aids in building unikernels systematically. It requires the following dependencies (for Debian-based systems):

apt-get install -y --no-install-recommends build-essential libncurses-dev libyaml-dev flex git wget socat bison unzip uuid-runtime;

Note: Ubuntu 20.04 users may suffer from issue #29 due to this bug of socat-1.7.3.3. If you are using Ubuntu 20.04, please make sure to compile and install the latest version of socat retrieved from this page.

To install simply run:

pip3 install git+https://github.com/unikraft/kraft.git@staging

Building an Application

The simplest way to build a unikernel is to pass in an application directory to Application.from_workdir:

from kraft.app import Application

app = Application.from_workdir(workdir)

if not app.is_configured():
    app.configure()

app.fetch()
app.prepare()
app.build()

License

Pykraft is part of the Unikraft OSS Project and licensed under BSD-3-Clause.