STK
Server toolkit - minimal and simple framework for developing server in golang
STK provides a suite of tools tailored for building and managing server applications.
Features:
- GSK (library): Ideal for constructing servers.
- STK CLI:
- Quickly scaffold your project and add modules with ease. It uses gsk package to run the server.
- Migrator: Generate migration files, perform migration on your sql database.
Installation
with go install
go install github.com/adharshmk96/stk@latest
If installation fails, check the GOPATH and GOBIN environment variables. Make sure that GOBIN is added to your PATH.
echo export PATH=$PATH:$GOBIN >> ~/.bashrc
source ~/.bashrc
Get started ( with CLI )
- Setup and initialize a project scaffolded using gsk and clean arch format. Read more about the project structure here
stk init
- Start the server
make run
it will run go run . serve -p 8080
command
- Test the server
curl http://localhost:8080/api/ping
Checkout the library documentation here
Add Modules to project
To add a new module "auth" to the project run the following command
stk add -m auth
you can use it by adding setupAuthRoutes
to the routing/initRoutes.go
file
example:
package routing
import (
"github.com/adharshmk96/stk/gsk"
)
func SetupRoutes(server *gsk.Server) {
setupPingRoutes(server)
setupAuthRoutes(server)
}
To remove a module "auth" from the project run the following command
stk rm -m auth
you can remove the module by removing setupAuthRoutes
from the routing/initRoutes.go
file
example:
package routing
import (
"github.com/adharshmk96/stk/gsk"
)
func SetupRoutes(server *gsk.Server) {
setupPingRoutes(server)
}
Migrator
- CLI tool for generating migration files and running migrations
- Supports sqlite3 (default)
Get started
Generate migration files ( optinally name it and fill )
stk migrator generate -n "initial migration" --fill
migrate up ( applies all migrations, or specified number of steps )
stk migrator up
migrate down ( applies all down migrations, or specified number of steps )
stk migrator down
History - Shows history of applied migrations
stk migrator history
Development
refer development docs