diff --git a/.gitignore b/.gitignore index 8084668..29729ed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,29 @@ -# Generated by Cargo -# will have compiled files and executables -debug/ -target/ +# ---> Go +# If you prefer the allow list template instead of the deny list, see community template: +# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore +# +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib -# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries -# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html -Cargo.lock +# Test binary, built with `go test -c` +*.test -# These are backup files generated by rustfmt -**/*.rs.bk +# Output of the go coverage tool, specifically when used with LiteIDE +*.out -# MSVC Windows builds of rustc generate these, which store debugging information -*.pdb +# Dependency directories (remove the comment below to include it) +# vendor/ -# RustRover -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ +# Go workspace file +go.work +go.work.sum + +# env file +.env # direnv .direnv diff --git a/Cargo.toml b/Cargo.toml deleted file mode 100644 index e7e8106..0000000 --- a/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "voidway" -version = "0.1.0" -edition = "2021" - -[dependencies] diff --git a/flake.lock b/flake.lock index 8260e69..c44fcff 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,44 @@ { "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gomod2nix": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729448365, + "narHash": "sha256-oquZeWTYWTr5IxfwEzgsxjtD8SSFZYLdO9DaQb70vNU=", + "owner": "nix-community", + "repo": "gomod2nix", + "rev": "5d387097aa716f35dd99d848dc26d8d5b62a104c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "gomod2nix", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1732014248, @@ -18,11 +57,27 @@ }, "root": { "inputs": { + "gomod2nix": "gomod2nix", "nixpkgs": "nixpkgs", - "systems": "systems" + "systems": "systems_2" } }, "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", diff --git a/flake.nix b/flake.nix index cfd60ac..f143566 100644 --- a/flake.nix +++ b/flake.nix @@ -4,27 +4,44 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; systems.url = "github:nix-systems/default-linux"; + gomod2nix = { + url = "github:nix-community/gomod2nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = { self, nixpkgs, systems}: + outputs = { self, nixpkgs, systems, gomod2nix }: let inherit (nixpkgs) lib; - inherit (lib) attrValues; eachSystem = lib.genAttrs (import systems); pkgs = eachSystem (system: import nixpkgs { localSystem = system; + overlays = [ gomod2nix.overlays.default ]; }); in { -# packages = eachSystem (system: { -# default = pkgs.hello; -# }); + packages = eachSystem (system: { + default = pkgs.${system}.buildGoApplication { + pname = "voidway"; + version = "latest"; + goPackagePath = "git.sako.lol/sako/voidway/v4"; + src = ./.; + modules = ./gomod2nix.toml; + }; + }); devShells = eachSystem (system: { default = pkgs.${system}.mkShell { - name = "voidway-shell"; - packages = attrValues { inherit (pkgs.${system}) cargo rustc rust-analyzer rustfmt pkg-config sqlite-interactive;}; + name = "v-shell"; + buildInputs = with pkgs.${system}; [ + go + gopls + gotools + go-tools + gomod2nix.packages.${system}.default + sqlite-interactive + ]; }; }); }; diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..b705a3a --- /dev/null +++ b/go.mod @@ -0,0 +1,11 @@ +module git.sako.lol/sako/voidway/v4 + +go 1.23.3 + +require github.com/valyala/fasthttp v1.57.0 + +require ( + github.com/andybalholm/brotli v1.1.1 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..5ac7d73 --- /dev/null +++ b/go.sum @@ -0,0 +1,10 @@ +github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA= +github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.57.0 h1:Xw8SjWGEP/+wAAgyy5XTvgrWlOD1+TxbbvNADYCm1Tg= +github.com/valyala/fasthttp v1.57.0/go.mod h1:h6ZBaPRlzpZ6O3H5t2gEk1Qi33+TmLvfwgLLp0t9CpE= +github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= +github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= diff --git a/gomod2nix.toml b/gomod2nix.toml new file mode 100644 index 0000000..213d79f --- /dev/null +++ b/gomod2nix.toml @@ -0,0 +1,15 @@ +schema = 3 + +[mod] + [mod."github.com/andybalholm/brotli"] + version = "v1.1.1" + hash = "sha256-kCt+irK1gvz2lGQUeEolYa5+FbLsfWlJMCd5hm+RPgQ=" + [mod."github.com/klauspost/compress"] + version = "v1.17.11" + hash = "sha256-LFSIWy0C4VbiuPve0eKHr7Q7s4XtaGzsZ3qpO+6bEgc=" + [mod."github.com/valyala/bytebufferpool"] + version = "v1.0.0" + hash = "sha256-I9FPZ3kCNRB+o0dpMwBnwZ35Fj9+ThvITn8a3Jr8mAY=" + [mod."github.com/valyala/fasthttp"] + version = "v1.57.0" + hash = "sha256-AIDhVUZwRxVBauXq1Pu4hEljzaw2LiY0ULeAQ3+XyGk=" diff --git a/main.go b/main.go new file mode 100644 index 0000000..a372609 --- /dev/null +++ b/main.go @@ -0,0 +1,10 @@ +package main + +import ( + "fmt" + "github.com/valyala/fasthttp" +) + +func main() { + fmt.Println("Hi") +} diff --git a/src/main.rs b/src/main.rs deleted file mode 100644 index e7a11a9..0000000 --- a/src/main.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - println!("Hello, world!"); -}