{ pkgs ? import <nixpkgs> {} }:

  pkgs.mkShell {
    buildInputs = with pkgs; [
      # Rust
      cargo
      rustc

      # Compiler
      gnumake
      clang
      llvmPackages.libclang
      llvmPackages.clang

      # System
      btrfs-progs
      e2fsprogs
      openssl
      pkg-config
      util-linux
    ];
    
    shellHook = ''
      export LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib"
      export CLANG_PATH="${pkgs.llvmPackages.clang}/bin/clang"
      export RUST_BACKTRACE=1
      echo "We're ready to make some Rust!"
    '';
}