fix: cranelift

This commit is contained in:
Elijah McMorris 2025-02-03 11:56:31 -08:00
parent 531af211bf
commit 300c06d48b
Signed by: NexVeridian
SSH key fingerprint: SHA256:bsA1SKZxuEcEVHAy3gY1HUeM5ykRJl0U0kQHQn0hMg8
7 changed files with 378 additions and 252 deletions

View file

@ -1,9 +1,14 @@
# [target.x86_64-unknown-linux-gnu]
# linker = "clang"
# rustflags = ["-C", "link-arg=-fuse-ld=/usr/bin/mold"]
[alias]
t = "nextest run"
[build]
target-dir = "target/target"
[unstable]
codegen-backend = true
[profile.release]
codegen-backend = "cranelift"
[profile.dev]
codegen-backend = "cranelift"

511
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
[package]
name = "ark-invest-api-rust"
version = "0.1.0"
edition = "2021"
edition = "2024"
[dependencies]
polars = { version = "0.45", features = [
@ -15,7 +15,7 @@ polars = { version = "0.45", features = [
axum = "0.7"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tokio = { version = "1.42", features = ["full"] }
tokio = { version = "1.43", features = ["full"] }
aide = { version = "0.13", features = ["redoc", "axum"] }
schemars = { version = "0.8", features = ["chrono"] }
chrono = { version = "0.4", features = ["serde"] }

43
flake.lock generated
View file

@ -3,11 +3,11 @@
"advisory-db": {
"flake": false,
"locked": {
"lastModified": 1733749954,
"narHash": "sha256-2Ug80Uf/oUujxgh02Iy5vTG0V+Ab9+YUHuRLRY0ayiY=",
"lastModified": 1740407442,
"narHash": "sha256-EGzWKm5cUDDJbwVzxSB4N/+CIVycwOG60Gh5f1Vp7JM=",
"owner": "rustsec",
"repo": "advisory-db",
"rev": "ec9ce28714bb38d77a2223e7266df705500a7f11",
"rev": "2e25d9665f10de885c81a9fb9d51a289f625b05f",
"type": "github"
},
"original": {
@ -18,11 +18,11 @@
},
"crane": {
"locked": {
"lastModified": 1734324364,
"narHash": "sha256-omYTR59TdH0AumP1cfh49fBnWZ52HjfdNfaLzCMZBx0=",
"lastModified": 1739936662,
"narHash": "sha256-x4syUjNUuRblR07nDPeLDP7DpphaBVbUaSoeZkFbGSk=",
"owner": "ipetkov",
"repo": "crane",
"rev": "60d7623f1320470bf2fdb92fd2dca1e9a27b98ce",
"rev": "19de14aaeb869287647d9461cbd389187d8ecdb7",
"type": "github"
},
"original": {
@ -36,14 +36,14 @@
"nixpkgs": [
"nixpkgs"
],
"rust-analyzer-src": []
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1734417396,
"narHash": "sha256-32x1Z+Pz3Jv0cK9EG56cFTKXy/mZ/c+Ikxw+aVfKHp4=",
"lastModified": 1740897281,
"narHash": "sha256-lUCeMKV8sUn8Y4R+4OzFMqH0k00KqvbIu0vSIMsWpH0=",
"owner": "nix-community",
"repo": "fenix",
"rev": "a18d41b26e998e95a598858fdb86ba22fb5da47d",
"rev": "2a4bbf46e00e06967f55b3a55a685d2039f2b572",
"type": "github"
},
"original": {
@ -72,11 +72,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1734126203,
"narHash": "sha256-0XovF7BYP50rTD2v4r55tR5MuBLet7q4xIz6Rgh3BBU=",
"lastModified": 1740791350,
"narHash": "sha256-igS2Z4tVw5W/x3lCZeeadt0vcU9fxtetZ/RyrqsCRQ0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "71a6392e367b08525ee710a93af2e80083b5b3e2",
"rev": "199169a2135e6b864a888e89a2ace345703c025d",
"type": "github"
},
"original": {
@ -95,6 +95,23 @@
"nixpkgs": "nixpkgs"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1740851167,
"narHash": "sha256-sFRsGYrI2Z4X+P9jkvb7XZJG6DImVhz8BSELBT2mLdo=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "76567ee28dacac2636aeb6e5b6a9560ffca21d87",
"type": "github"
},
"original": {
"owner": "rust-lang",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,

View file

@ -44,7 +44,6 @@
fpc.rustc
fpc.clippy
fpc.rust-src
fpc.rustc
fpc.rustfmt
fpc.rustc-codegen-cranelift-preview
])
@ -64,20 +63,13 @@
++ lib.optionals pkgs.stdenv.isDarwin [
# Additional darwin specific inputs can be set here
pkgs.libiconv
pkgs.darwin.apple_sdk.frameworks.SystemConfiguration
];
# Additional environment variables can be set directly
# MY_CUSTOM_VAR = "some value";
};
craneLibLLvmTools = craneLib.overrideToolchain (
fenix.packages.${system}.complete.withComponents [
"cargo"
"llvm-tools"
"rustc"
]
);
# Build *just* the cargo dependencies, so we can reuse
# all of that work (e.g. via cachix) when running in CI
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
@ -119,7 +111,10 @@
commonArgs
// {
inherit cargoArtifacts;
cargoClippyExtraArgs = "--all-targets -- --deny warnings";
cargoClippyExtraArgs = ''
--all --all-targets -- --deny warnings -W clippy::nursery -W rust-2018-idioms \
-A clippy::future_not_send -A clippy::option_if_let_else -A clippy::or_fun_call
'';
}
);
@ -151,6 +146,7 @@
inherit cargoArtifacts;
partitions = 1;
partitionType = "count";
cargoExtraArgs = "--no-tests pass";
}
);
};

View file

@ -1,12 +1,23 @@
precommit:
cargo update
cargo check
cargo fmt
cargo t
cargo clippy --fix --allow-dirty
check:
cargo update
nix flake update
nix flake check
cargo clippy --fix --allow-dirty
just precommit-shared
nix flake update
nix flake check -v
precommit:
just precommit-shared
cargo check
just test
alias t := test
test:
cargo t --no-fail-fast
precommit-shared:
cargo upgrade -v
cargo update
cargo fmt --all
just clippy
clippy:
cargo clippy --all --fix --allow-dirty -- -W clippy::nursery -W rust-2018-idioms \
-A clippy::future_not_send -A clippy::option_if_let_else -A clippy::or_fun_call

View file

@ -1,22 +1,22 @@
use aide::{
axum::{
routing::{get, get_with},
ApiRouter, IntoApiResponse,
routing::{get, get_with},
},
openapi::{Info, OpenApi},
redoc::Redoc,
transform::TransformOperation,
};
use axum::{
BoxError, Extension, Json,
error_handling::HandleErrorLayer,
http::{Method, StatusCode},
BoxError, Extension, Json,
};
use lazy_static::lazy_static;
use std::{env, net::SocketAddr, sync::Arc, time::Duration};
use tower::{buffer::BufferLayer, limit::RateLimitLayer, ServiceBuilder};
use tower::{ServiceBuilder, buffer::BufferLayer, limit::RateLimitLayer};
use tower_governor::{
governor::GovernorConfigBuilder, key_extractor::SmartIpKeyExtractor, GovernorLayer,
GovernorLayer, governor::GovernorConfigBuilder, key_extractor::SmartIpKeyExtractor,
};
use tower_http::{
compression::CompressionLayer,
@ -39,7 +39,7 @@ async fn serve_api(Extension(api): Extension<OpenApi>) -> impl IntoApiResponse {
Json(api)
}
fn description_date(op: TransformOperation) -> TransformOperation {
fn description_date(op: TransformOperation<'_>) -> TransformOperation<'_> {
op.parameter_untyped("start", |p| {
p.description("Start date range - Inclusive >= - ISO 8601")
})