1
0
mirror of https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles.git synced 2025-09-15 09:45:58 +03:00

added dev shell example for Rust

This commit is contained in:
XNM
2023-11-12 19:33:55 +02:00
parent 9c1e848ac6
commit 46fafb70ac
5 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1 @@
rustflags = ["-C", "link-arg=-fuse-ld=/path/to/mold", "-Zcodegen-backend=cranelift" ] # Change '/path/to/mold' and DON'T use it in production, only for dev needs

View File

@@ -0,0 +1,20 @@
### Cargo code snippets for different optimizations
## Dev build compilation speed optimization (more https://benw.is/posts/how-i-improved-my-rust-compile-times-by-seventy-five-percent)
# Work only with nightly version of Rust by the time when it was written, also DON'T use it in production for now
cargo-features = ["codegen-backend"]
# Important: It provides less useful error messages during compilation
[profile.dev]
opt-level = 1
codegen-backend = "cranelift"
[profile.dev.package."*"]
opt-level = 3
codegen-backend = "cranelift"
## Release build size optimization (more https://github.com/johnthagen/min-sized-rust)
[profile.release]
strip = true
opt-level = "z" # Also can try 's' instead of 'z'
lto = true
codegen-units = 1
panic = "abort"

View File

@@ -0,0 +1,47 @@
{
description = "A devShell for Rust Development";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rust-overlay.url = "github:oxalica/rust-overlay";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, rust-overlay, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs {
inherit system overlays;
};
in
with pkgs;
{
devShells.default = mkShell {
buildInputs = [
(rust-bin.fromRustupToolchainFile ./rust-toolchain.toml)
mold
pkg-config
openssl
sqlite
cargo-deny
cargo-audit
cargo-update
cargo-edit
cargo-outdated
cargo-license
cargo-tarpaulin
cargo-cross
cargo-zigbuild
cargo-nextest
cargo-spellcheck
cargo-modules
cargo-bloat
taplo
bacon
helix
];
};
}
);
}

View File

@@ -0,0 +1,10 @@
[toolchain]
channel = "nightly"
components = [ "rust-src", "rust-analyzer", "rustc-codegen-cranelift", "miri", "llvm-tools", "rust-docs-json" ]
targets = [
"wasm32-wasi",
"wasm32-wasi-preview1-threads",
"x86_64-pc-windows-gnu",
"x86_64-unknown-linux-gnu",
]
profile = "default"

View File

@@ -446,6 +446,7 @@
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
mold
gcc13 gcc13
jdk11 jdk11
gleam gleam