bevy_fabrik 0.2.1

IK solver for Bevy using FABRIK algorithm
Documentation
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    utils.url = "github:numtide/flake-utils";
    rust-overlay = {
      url = "github:oxalica/rust-overlay";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs =
    {
      self,
      nixpkgs,
      utils,
      rust-overlay,
    }:
    utils.lib.eachDefaultSystem (
      system:
      let
        pkgs = import nixpkgs {
          inherit system;
          overlays = [
            (import rust-overlay)
          ];
        };

        rust-toolchain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;

        defaultAttrs = with pkgs; rec {
          nativeBuildInputs = [
            rust-toolchain
            pkg-config
          ];

          buildInputs = lib.optionals (pkgs.stdenv.isLinux) [
            alsa-lib

            vulkan-loader
            vulkan-tools

            libudev-zero
            xorg.libX11
            xorg.libXcursor
            xorg.libXi
            xorg.libXrandr
            libxkbcommon
            wayland
          ];

          packages = [
            rust-analyzer
            (rustfmt.override { asNightly = true; })
            cargo-watch
          ];

          LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs;
        };

        default = pkgs.mkShell defaultAttrs;

      in
      {
        devShells = { inherit default; };
      }
    );
}