Skip to content

Repository files navigation

Melon Build StatusGoDoc

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.

About

Melon 🍈 - Dropwizard-like web service framework in Go (golang)

Topics

Resources

Stars

113 stars

Watchers

9 watching

Forks

Releases

Packages

Contributors

Languages