try to optimize the binary using UPX
This commit is contained in:
parent
fd10dbbd13
commit
3237dcbc2a
7
Makefile
7
Makefile
|
@ -5,7 +5,10 @@ build:
|
||||||
rm -rf pokedex*
|
rm -rf pokedex*
|
||||||
swag init
|
swag init
|
||||||
protoc -I=./ --go_out=../ ./pokemon/pokemon.proto
|
protoc -I=./ --go_out=../ ./pokemon/pokemon.proto
|
||||||
go build
|
go build pokedex
|
||||||
|
|
||||||
|
|
||||||
|
optimize:
|
||||||
|
go build -ldflags "-s -w" pokedex
|
||||||
|
upx pokedex
|
||||||
|
|
||||||
|
prod: build optimize
|
||||||
|
|
11
README.md
11
README.md
|
@ -9,10 +9,19 @@ A simple Go-powered REST API kata.
|
||||||
|
|
||||||
## Protobuf
|
## Protobuf
|
||||||
|
|
||||||
|
Why? Separation of concerns; do not expose database/domain internals. Structs in `pokemon.go` should not leave the package. The `.proto` file serve as the official "contracts".
|
||||||
|
|
||||||
- JSON mapping: https://protobuf.dev/programming-guides/proto3/#json
|
- JSON mapping: https://protobuf.dev/programming-guides/proto3/#json
|
||||||
|
- `Pokemons` as object with `entries` is ugly but see https://github.com/golang/protobuf/issues/675 - no way to convert a slice to a protobuf message...
|
||||||
|
|
||||||
## Swagger
|
## Swagger
|
||||||
|
|
||||||
- Exposed at `http://localhost:8080/docs`
|
- Exposed at `http://localhost:8080/docs`
|
||||||
- Regenerate with `swag init`, see https://github.com/swaggo/http-swagger
|
- Regenerate with `swag init`, see https://github.com/swaggo/http-swagger
|
||||||
- Annotation format: see https://github.com/swaggo/swag
|
- Annotation format: see https://github.com/swaggo/swag
|
||||||
|
|
||||||
|
## Optimizing the binary
|
||||||
|
|
||||||
|
See `Makefile`; use https://upx.github.io/ to package after stripping some debug info.
|
||||||
|
|
||||||
|
Somehow doesn't work on OSX (process killed)?
|
2
main.go
2
main.go
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"github.com/swaggo/http-swagger"
|
"github.com/swaggo/http-swagger"
|
||||||
"gorm.io/driver/sqlite"
|
"gorm.io/driver/sqlite"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
|
@ -40,5 +41,6 @@ func main() {
|
||||||
http.HandleFunc("GET /docs/", httpSwagger.Handler(
|
http.HandleFunc("GET /docs/", httpSwagger.Handler(
|
||||||
httpSwagger.URL("http://localhost:8080/docs/doc.json"), //The url pointing to API definition
|
httpSwagger.URL("http://localhost:8080/docs/doc.json"), //The url pointing to API definition
|
||||||
))
|
))
|
||||||
|
fmt.Println("Pokedex server started @ http://localhost:8080")
|
||||||
http.ListenAndServe(":8080", nil)
|
http.ListenAndServe(":8080", nil)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue