miso

module
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2025 License: Apache-2.0

README

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.4.2

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

[!IMPORTANT]

See Upgrade & Migration for automatic 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.
  • Since v0.4.0,
    • The default lowercase camel case json field naming strategy has been removed. Package encoding/json is moved to util/json.
    • A lot of deprecated code is removed. All code directly under util pkg is moved to dedicated pkgs, e.g., util/strutil, util/snowflake, util/randutil, util/iputil, util/pool, util/profile, util/constraint, util/atom, util/must, util/cmputil and more.
    • There are a lot of breaking changes, make sure you follow the guide and use the automatic migration tool.

[!WARNING]

Since Jsoniter is nolonger actively maintained, last commit was 3 years ago. Jsoniter will be removed from this repository in later release. The default json processing behaviour has been 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.

Directories

Path Synopsis
cmd
misoapi command
misoconfig command
misocurl command
misogen command
misopatch command
demo module
middleware
crypto
crypto utility pkg.
crypto utility pkg.
dbquery
enhanced, tracing enabled database query builder.
enhanced, tracing enabled database query builder.
jwt
JWT implementation.
JWT implementation.
kafka
Kafka integration.
Kafka integration.
logbot
logbot service integration.
logbot service integration.
money
Money representation.
Money representation.
mysql
MySQL integration.
MySQL integration.
nacos
Nacos integration.
Nacos integration.
rabbit
RabbitMQ integration.
RabbitMQ integration.
redis
Redis integration.
Redis integration.
sqlite
SQLite integration.
SQLite integration.
svc
svc package integration for schema version control.
svc package integration for schema version control.
task
redis-based distributed task scheduling
redis-based distributed task scheduling
user-vault
user-vault integration
user-vault integration
zk
Zookeeper integration.
Zookeeper integration.
util
async
Package for async task processing.
Package for async task processing.
atom
Package for time processing.
Package for time processing.
cli
Package for CLI operations.
Package for CLI operations.
cmputil
Compare.
Compare.
constraint
Type constraints
Type constraints
copyutil
Package for value coping, e.g., copy field values between structs.
Package for value coping, e.g., copy field values between structs.
csv
csv processing.
csv processing.
errs
errors with stacktrace.
errors with stacktrace.
excel
excel processing.
excel processing.
expr
expr language support.
expr language support.
flags
flag pkg extension.
flag pkg extension.
hash
Hash based data structures and tool set.
Hash based data structures and tool set.
heap
Heap data structure.
Heap data structure.
idutil
ID generator based on ulid.
ID generator based on ulid.
iputil
Package for IP processing.
Package for IP processing.
json
JSON processing.
JSON processing.
llm
LLM facilities.
LLM facilities.
lru
LRU cache.
LRU cache.
lua
Lua language support.
Lua language support.
must
package for operations that must succeed else panic.
package for operations that must succeed else panic.
opt
Optional.
Optional.
osutil
OS Uiliities.
OS Uiliities.
pair
Pair data structure.
Pair data structure.
pool
Pool of reuseable data structure.
Pool of reuseable data structure.
profile
CPU and Heap profiling support.
CPU and Heap profiling support.
ptr
Pointer and value conversion.
Pointer and value conversion.
queue
Queue data structure.
Queue data structure.
randutil
Utility package for random operations.
Utility package for random operations.
retry
Retry support.
Retry support.
rfutil
Reflect utility package.
Reflect utility package.
semver
Basic semver parsing.
Basic semver parsing.
slutil
Slice utility pkg.
Slice utility pkg.
snowflake
Snowflake ID generation.
Snowflake ID generation.
src
Source utility pkg.
Source utility pkg.
stack
Stack data structure.
Stack data structure.
strutil
String utility pkg.
String utility pkg.
testutil
Utility for testing.
Utility for testing.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL