miso
main branch is unstable, install miso with tags instead
miso, yet another simple application framework.
Initially, it was a fun project for me to prove: 'yes, we can just write a framework ourselves.'. Surprisingly, it does work very well.
miso provides an opinionated way to write applications (mainly backend web services). It's convenient enough with reasonable code complexity.
Do not expect it to be a full-fledged framework, it's surely not.
The overall target is to make it as small and simple as possible, backward compatibility may break in future releases.
Include miso in your project
Install a specific release of miso:
go get github.com/curtisnewbie/miso@v0.3.9
Again, miso is an opinionated framework, it might not be suitable for mature codebase, but you are free to explore this framework in a new project.
You can generate a new project using misogen (see CLI Tools).
Documentations
Projects that use miso
The following are projects that use miso (mine tho), see also moon-monorepo.
Updates
See Upgrade & Migration.
- Since v0.2.0, 21 configuration properties are renamed, these property names are not backward compatible. If you are using deprecated configuration names, error log are printed as a warning.
- Since v0.3.0, a bunch of breaking changes are introduced, e.g., refactoring package structure, removing deprecated code and so on.
Lots of methods and types are moved from
/util pkg to pkgs such as cli, csv, errs, expr, flags, hash, heap, pair, queue, rfutil, slutil, stack, and strutil.
- Since v0.3.5, a few funcs in
errs pkg are deprecated.
- Since v0.3.6, file (os) related funcs in pkg
util are deprecated and moved to util/osutil; and FindTestdata(..) func in pkg util is deprecated and moved to util/testutil.
- Since v0.3.7, async code in pkg
util is deprecated and moved to util/async, while previous code may continue to work, it will be deleted in later release.
[!WARNING]
Since Jsoniter is nolonger actively maintained, last commit was 3 years ago. Jsoniter will be removed from this repository in v0.4.0 release. The default json processing behaviour will change once jsoniter is removed. Previously, all struct fields are by default serialized/deserialized using lowercase camel case style without needing to add any json tag. Since v0.4.0, json tags must be added manually to maintain compatibility.