main branch is unstable, install miso with tags instead
Miso, yet another simple application framework. It's mainly a fun project for me to prove: 'yes, we can just write a framework ourselves.'.
Miso provides an opinionated way to write application, common functionalities such as configuration, service discovery, load balancing, log tracing, log rotation, task scheduling, message queue and so on, are all implemented in an opinionated way. You can use miso to write almost any kind of application, but it's mainly a backend framework.
The overall target is to make it as small and simple as possible, backward compatibility may break in future releases.
Install a specific release of miso:
go get github.com/curtisnewbie/miso@v0.1.10
Install latest misogen
tool:
go install github.com/curtisnewbie/miso/cmd/misogen@v0.1.10
Use misogen
to generate new projects, e.g.,
$ misogen -h
Usage of misogen:
-cli
Generate CLI style project
-disable-web
Disable web server
-name string
Module name
-static
Generate code to embed and statically host frontend project
-svc
Generate code to integrate svc for automatic schema migration
$ mkdir myapp && cd myapp && misogen -name "myapp" -svc
misogen, current miso version: v0.1.10
Initialized module 'myapp'
Installing dependency: github.com/curtisnewbie/miso/miso@v0.1.10
Initializing conf.yml
Initializing internal/schema/scripts/schema.sql
Initializing internal/schema/migrate.go
Initializing main.go
$ misoapi -h
misoapi - automatically generate web endpoint in go based on misoapi-* comments
Supported miso version: v0.1.10
Usage of misoapi:
-debug
Enable debug log
For example:
misoapi-http: GET /open/api/doc
misoapi-desc: open api endpoint to retrieve documents
misoapi-query-doc: page: curent page index
misoapi-header-doc: Authorization: bearer authorization token
misoapi-scope: PROTECTED
misoapi-resource: document:read
- Configuration
- Application Lifecycle
- Distributed Task Scheduling
- Validation
- Service Healthcheck
- Json Processing Behaviour
- Using pprof
- Rabbitmq and Event Bus
- API Documentation Generation
- Tracing
- More in the future (maybe) :D
The following are projects that use miso (mine tho):