refactor: rewrite project from Rust to Go
- Replace Axum with Chi router - Replace sqlx with pgx for PostgreSQL - Replace tonic/prost with grpc-go - Replace tracing with zerolog - Update flake.nix for Go build with protoc generation - Preserve all existing endpoints and functionality Stack: Chi, pgx, grpc-go, zerolog, yaml.v3
This commit is contained in:
@@ -33,16 +33,39 @@
|
||||
src = ./.;
|
||||
hooks = {
|
||||
nixfmt.enable = true;
|
||||
rustfmt.enable = true;
|
||||
gofmt.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
music-agregator = pkgs.rustPlatform.buildRustPackage {
|
||||
music-agregator = pkgs.buildGoModule {
|
||||
pname = "music-agregator";
|
||||
version = "0.1.0";
|
||||
src = ./.;
|
||||
cargoLock.lockFile = ./Cargo.lock;
|
||||
nativeBuildInputs = [ pkgs.protobuf ];
|
||||
vendorHash = "sha256-gad5/pLGWyU45QiEvZJ8xEKNy4K2p5OykKE0nykzh8w=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgs.protobuf
|
||||
pkgs.protoc-gen-go
|
||||
pkgs.protoc-gen-go-grpc
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
export HOME=$(mktemp -d)
|
||||
mkdir -p pkg/metadatapb/metadata/v1
|
||||
${pkgs.protobuf}/bin/protoc \
|
||||
--plugin=protoc-gen-go=${pkgs.protoc-gen-go}/bin/protoc-gen-go \
|
||||
--plugin=protoc-gen-go-grpc=${pkgs.protoc-gen-go-grpc}/bin/protoc-gen-go-grpc \
|
||||
--proto_path=proto \
|
||||
--go_out=pkg/metadatapb --go_opt=paths=source_relative \
|
||||
--go-grpc_out=pkg/metadatapb --go-grpc_opt=paths=source_relative \
|
||||
proto/metadata/v1/metadata.proto
|
||||
'';
|
||||
|
||||
subPackages = [ "cmd/server" ];
|
||||
|
||||
postInstall = ''
|
||||
mv $out/bin/server $out/bin/music-agregator
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
@@ -65,11 +88,13 @@
|
||||
gitleaks
|
||||
plantuml
|
||||
protobuf
|
||||
protoc-gen-go
|
||||
protoc-gen-go-grpc
|
||||
|
||||
rustc
|
||||
cargo
|
||||
rustfmt
|
||||
clippy
|
||||
go
|
||||
gopls
|
||||
gotools
|
||||
go-tools
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user