Melon
Melon ๐ - Dropwizard-like web service framework in Go (golang)
Lightweight Go framework for building web services, inspired by Dropwizard. The project is written primarily in Go, distributed under the Other license, first published in 2015. Key topics include: dropwizard, golang.
Melon

Lightweight Go framework for building web services, inspired by Dropwizard.
Overview
Melon is a partial port of Dropwizard in Go.
Besides of builtin Go packages, it utilizes a number of libraries
in order to build a server stack quickly, including:
- mux: a popular HTTP multiplexer.
- gol: a simple hierarchical logging API.
- metrics: a minimalist instrumentation library.
- validator: an extensible value validator.
Features supported:
- Commands: for controlling your application from command line.
- Bundles: for modularizing your application.
- Managed Objects: for starting and stopping your components.
- HealthChecks: for checking health of your application in production.
- Metrics: for monitoring and statistics.
- Tasks: for administration.
- Resources: for RESTful endpoints.
- Filters: for injecting middlewares.
- Logging: for understanding behaviors of your application.
- Configuration: for application parameters.
- Banner: for fun. :)
- and more...
Examples
See example
INFO [2015-02-04T12:00:01.289+10:00] melon/server: starting
______
/\ __\______
/..\ \ \ \
/....\_____\ \ \
\..../ / / /\_____\
\../ / / /./ __/
\/_____/./__ /
\/_____/
INFO [2015-02-04T12:00:01.289+10:00] melon/assets: registering AssetsBundle for path /static/
DEBUG [2015-02-04T12:00:01.289+10:00] melon/server: resources = [*views.JSONProvider,*views.XMLProvider,*views.Resource,*views.Resource,*views.Resource,*views.Resource,*views.Resource]
INFO [2015-02-04T12:00:01.289+10:00] melon/server: endpoints =
GET /static/* (http.HandlerFunc)
GET /users (*views.httpHandler)
POST /users (*views.httpHandler)
GET /user/{name} (*views.httpHandler)
PUT /user/{name} (*views.httpHandler)
DELETE /user/{name} (*views.httpHandler)
INFO [2015-02-04T12:00:01.290+10:00] melon/admin: tasks =
POST /tasks/gc (*core.gcTask)
POST /tasks/log (*logging.logTask)
POST /tasks/rmusers (*main.usersTask)
DEBUG [2015-02-04T12:00:01.290+10:00] melon/admin: health checks = [UsersHealthCheck]
INFO [2015-02-04T12:00:01.290+10:00] melon/server: listening :8080
INFO [2015-02-04T12:00:01.290+10:00] melon/server: listening :8081
Contributing
Comments, issues and pull requests are always welcome.
Contributors
Showing top 1 contributor by commit count.
This article is auto-generated from goburrow/melon via the GitHub API.Last fetched: 6/27/2026
