Skip to content

goburrow/melon

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published