Skip to content

Instantly share code, notes, and snippets.

@MdSahil-oss
Last active December 23, 2023 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MdSahil-oss/667e2a0feb3a4eaadea7073e21d8f652 to your computer and use it in GitHub Desktop.
Save MdSahil-oss/667e2a0feb3a4eaadea7073e21d8f652 to your computer and use it in GitHub Desktop.

Unikraft GSoC'23: Enhancing the VSCode Developer Experience

Description

The VS Code Extension for Unikraft enables developers to quickly and painlessly build unikernels from the VS Code IDE. Amongst other features, it allows developers to list and find unikernel libraries as well as run basic commands. In this project, I developed a VS Code extension to use KraftKit, the newly released CLI companion tool for Unikraft, written in Go as well as created a few commands for kraftkit.

Preview (Unikraft's vs-code IDE extension usage & working)

Listing packages available on the system & project directory:

listing_packages.webm

Adding a package to the project:

adding_package.webm

Removing and purging a pakcage:

removing.purging_package.webm

Fetching dependencies:

fetching.webm

Preparing a project to run:

preparing.webm

Building a project to run:

building.webm

Running a project:

running.webm

Initialising a library:

creating_library.webm

Cleaning a built project:

cleaning.webm

Cleaning builts properly:

proper_cleaning.webm

GSoC contributor

Name: Md Sahil

Email: Mohdssahil1@gmail.com

Github profile: https://github.com/MdSahil-oss

Contributions

For this project, I made enhancement in two diffrent repositories Kraftkit and ide-vscode of Unikraft. Where Kraftkit repository contains all the enhancements related to CLI commands development and ide-vscode repository contains all enhancements have been made for the development of Unikraft Vscode IDE extension to make it possible to execute Kraftkit CLI commands using VsCode.

Link to the repository

Blog posts

Current status

The main part of my project is almost done (Only pull requests are pending to be reviewed & merged by mentors), Now IDE extension is working fine with newly created golang based CLI Kraftkit as well as able to execute some new commands that Kraftkit has like Fetch, Prepare, Clean and Properclean.

Future work

Some additional tasks are left to be accomplished in this project that are:

  • Adding support in Unikraft's build cycle for packaging unikernels in different formats.
  • The provisioning of an LSP that would allow checks when writing Unikraft code such that relevant libraries are imported or not.

Once my created PRs get merged I'll start working on these remaining additional tasks one by one beyond GSoC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment