GitPedia

Melon

Melon ๐Ÿˆ - Dropwizard-like web service framework in Go (golang)

From goburrowยทUpdated June 12, 2026ยทView on GitHubยท

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 Build Status GoDoc

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.

View all contributors on GitHub โ†’

This article is auto-generated from goburrow/melon via the GitHub API.Last fetched: 6/27/2026