Next Generation WASM Microkernel Operating System
1{
2 description = "Flake providing a development shell for k23";
3
4 inputs = {
5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6 flake-utils.url = "github:numtide/flake-utils";
7 rust-overlay = {
8 url = "github:oxalica/rust-overlay";
9 inputs = {
10 nixpkgs.follows = "nixpkgs";
11 };
12 };
13 };
14
15 outputs = { self, nixpkgs, rust-overlay, flake-utils, ... }:
16 flake-utils.lib.eachDefaultSystem (system:
17 let
18 overlays = [ (import rust-overlay) ];
19 pkgs = import nixpkgs {
20 inherit system overlays;
21 };
22 rustToolchain = with pkgs; rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
23 in
24 {
25 devShells.default = with pkgs; mkShell rec {
26 name = "k23-dev";
27 buildInputs = [
28 # compilers
29 rustToolchain
30 clang
31
32 # devtools
33 just
34 mdbook
35 socat
36 wabt
37 dtc
38 cargo-fuzz
39 cargo-deny
40 typos
41 wasm-tools
42 jujutsu
43
44 # for testing the kernel
45 qemu
46 ];
47
48 LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
49 LD_LIBRARY_PATH = "${lib.makeLibraryPath buildInputs}";
50 };
51 }
52 );
53}