{ pkgs ? import <nixpkgs> { }
, additionalBuildInputs ? [ ]
, platforms ? [ "x86_64-linux" "aarch64-darwin" ]
}:

with pkgs;

mkShell rec {
  inherit platforms;

  nativeBuildInputs = [
    pkg-config
    openssl
    # TODO: Figure out a better way to include sqlx only in dev shells (release shell?)
    sqlx-cli
  ] ++ lib.optionals pkgs.stdenv.isDarwin [
    # Additional darwin specific inputs can be set here
    pkgs.darwin.apple_sdk.frameworks.SystemConfiguration
  ];
  buildInputs = [
    sqlite
  ] ++ additionalBuildInputs;
  LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs;
  DATABASE_URL = "sqlite://.cache/data";
}