# icexin/eggos

A Go unikernel running on x86 bare metal

Repository: https://github.com/icexin/eggos
Canonical: https://ross.abutalabs.com/products/eggos
Homepage: http://eggos.icexin.com
Language: Go
License: MIT
License Family: permissive
Topics: go, golang, osdev, unikernel, netstack, wasm, kernel
Last push: 2023-07-22T15:38:56+00:00

## Health v2 (maintenance only)
Score: 23/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 0, release rhythm 8, longevity 100
- inputs: {"age_days": 2155, "days_push": 1138, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2324, forks 126 (observed 2026-08-28T04:06:37.309157+00:00)

## What it is
Eggos is a unikernel written almost entirely in Go that runs Go applications directly on x86 bare metal, supporting Go features like GC, goroutines, and channels without processes. It includes a TCP/IP network stack, afero-based VFS, a JavaScript interpreter, an NES emulator, HTTP/SSH servers, and GUI support.

## Use cases
- run go applications on bare metal
- build a unikernel from a go program
- learn how the go runtime works at the kernel level
- experiment with os development in go
- boot a small os with a network stack in qemu
- run a javascript interpreter on bare metal

## When to choose
- you want to run Go code directly on x86 hardware without a full OS
- you want to study or learn OS kernel development using Go instead of C
- you need a minimal single-application unikernel with goroutines and a TCP/IP stack
- you want a fun educational project exploring the Go runtime internals

## When to avoid
- you need a production-grade OS with processes, security isolation, or an ELF loader
- you need multi-process or multi-tenant workloads
- you require the latest Go toolchain, since eggos depends on specific Go versions (1.13-1.16)
- you need broad hardware driver support or a complete filesystem

## Facets
- artifact type: library
- maturity: maintenance
- function: programming-language, networking, interpreter, file-system, http-server, graphics, embedded
- domain: operating-systems, programming-languages, developer-tools, embedded-systems
- platform: windows, cpp, go, embedded
- tags: unikernel, go-runtime, bare-metal, osdev, x86, kernel, netstack, wasm, qemu, linux, macos

## Member repositories
- icexin/eggos (main) score 23

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:37.309157+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:38:34.427016+00:00, confidence not recorded.
  - readme: https://github.com/icexin/eggos (fetched 2026-08-28T04:06:37.309157+00:00, sha 417122c466b6)
  - homepage: http://eggos.icexin.com (fetched 2026-08-29T10:18:51.345691+00:00, sha 5ecb00ff8f90)
  - site_page: https://eggos.icexin.com/docs/quick-start/boot-from-cd (fetched 2026-08-29T10:18:51.348325+00:00, sha b6503a097e51)
  - site_page: https://eggos.icexin.com/docs/quick-start/play-eggos (fetched 2026-08-29T10:18:51.349973+00:00, sha 8b7241253d32)
  - site_page: https://eggos.icexin.com/docs/quick-start/prepare-env (fetched 2026-08-29T10:18:51.352233+00:00, sha 537543b8a737)
  - site_page: https://eggos.icexin.com/docs/quick-start/hello-eggos (fetched 2026-08-29T10:18:51.354806+00:00, sha e075666ff361)
  - site_page: https://eggos.icexin.com/docs/boot-loader/grub (fetched 2026-08-29T10:18:51.356641+00:00, sha e1641d35e61c)
- Data as of 2026-08-30T08:39:29.467469+00:00.
