{
  description = "Build a cargo project without extra checks";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";

    fenix = {
      url = "github:nix-community/fenix";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs =
    {
      self,
      nixpkgs,
      fenix,
      flake-utils,
      ...
    }:
    flake-utils.lib.eachDefaultSystem (
      system:
      let
        pkgs = nixpkgs.legacyPackages.${system};

        rs-toolchain =
          with fenix.packages.${system};
          combine [
            complete.toolchain
          ];
      in
      {
        devShells.default = pkgs.mkShell rec {
          buildInputs = with pkgs; [
            cargo-watch
            pkg-config
            rs-toolchain
            udev
            alsa-lib
            glfw
            freetype
            vulkan-headers
            vulkan-loader
            vulkan-validation-layers
            vulkan-tools # vulkaninfo
            shaderc # GLSL to SPIRV compiler - glslc
            renderdoc # Graphics debugger
            tracy # Graphics profiler
            vulkan-tools-lunarg
            xorg.libX11
            xorg.libXcursor
            xorg.libXi
            xorg.libXrandr # To use the x11 feature
            libxkbcommon
            wayland
            clang
            llvmPackages.bintools
          ];

          LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
        };
      }
    );
}
