Micro-kernel & pluggable web framework for Go

Lunny Xiao 227eca782a readme added log history 10 anni fa
public 33870517d0 more tests 10 anni fa
LICENSE 717e190c9b add some tests 10 anni fa
README.md 227eca782a readme added log history 10 anni fa
README_CN.md 227eca782a readme added log history 10 anni fa
compress.go 664c79d97e use short name handlers 10 anni fa
compress_test.go c252141adf more tests & bug fixed 10 anni fa
context.go 38efae9eed bug fixed 10 anni fa
context_test.go 699274c35a use http.Redirect 10 anni fa
cookie.go 0b5fb39f0b add cookie support 10 anni fa
cookie_test.go 9a918d2658 remove unimported 10 anni fa
doc.go 6bdde8c8ad remove unused codes 10 anni fa
error.go b66036b2c0 more tests 10 anni fa
error_test.go b86738a561 add custom error handler test 10 anni fa
group.go 6bdde8c8ad remove unused codes 10 anni fa
group_test.go 6bdde8c8ad remove unused codes 10 anni fa
logger.go 83c6f716fb small improvements 10 anni fa
logger_test.go 664c79d97e use short name handlers 10 anni fa
logo.png 589171832c add logo 10 anni fa
param.go 664c79d97e use short name handlers 10 anni fa
param_test.go 717e190c9b add some tests 10 anni fa
pool.go 5b95321382 more tests 10 anni fa
pool_test.go 5b95321382 more tests 10 anni fa
recovery.go 58fe74df75 add default errorhandler and the way to custom errorhandler 10 anni fa
recovery_test.go 58fe74df75 add default errorhandler and the way to custom errorhandler 10 anni fa
request.go 664c79d97e use short name handlers 10 anni fa
request_test.go 717e190c9b add some tests 10 anni fa
response.go 6bdde8c8ad remove unused codes 10 anni fa
response_test.go 717e190c9b add some tests 10 anni fa
return.go b86738a561 add custom error handler test 10 anni fa
return_test.go b66036b2c0 more tests 10 anni fa
router.go 611cece6f3 bug fixed 10 anni fa
router_test.go 5cc833fe2a add custom method 10 anni fa
static.go c89aa1ba13 more features for static 10 anni fa
static_test.go 2968d3a055 add staticoptions 10 anni fa
tan.go 95d48b1eb1 bug fixed 10 anni fa
tan_test.go b66036b2c0 more tests 10 anni fa

README.md

Tango Logo

Package tango is a micro-kernel & pluggable web framework for Go.

Current version: v0.2.8 Version History

Getting Started

To install Tango:

go get github.com/lunny/tango

The very basic usage of Tango:

package main

import "github.com/lunny/tango"

func main() {
    t := tango.Classic()
    t.Get("/", func() string {
        return "Hello tango!"
    })
    t.Run()
}

Then visit http://localhost:8000 on your browser. Of course, tango support struct form also.

package main

import "github.com/lunny/tango"

type Action struct {
    tango.Json
}

func (Action) Get() map[string]string {
    return map[string]string{
        "say": "Hello tango!",
    }
}

func main() {
    t := tango.Classic()
    t.Get("/", new(Action))
    t.Run()
}

This code will automatically convert returned map to a json because we has an embedded struct tango.Json.

More document, please see godoc and Wiki

Features

  • Powerful routing & Flexible routes combinations.
  • Directly integrate with existing services.
  • Easy to plugin/unplugin features with modular design.
  • High performance dependency injection embedded.

Middlewares

Middlewares allow you easily plugin/unplugin features for your Tango applications.

There are already many middlewares to simplify your work:

  • recovery - recover after panic
  • compress - Gzip & Deflate compression
  • static - Serves static files
  • logger - Log the request & inject Logger to action struct
  • param - get the router parameters
  • return - Handle the returned value smartlly
  • request - Inject request to action struct
  • response - Inject response to action struct
  • session - Build Status Session manager
  • xsrf - Build Status Generates and validates csrf tokens
  • binding - Build Status Bind and validates forms
  • renders - Build Status Go template engine
  • dispatch - Build Status Multiple Application support on one server
  • tpongo2 - Build Status Pongo2 teamplte engine support
  • captcha - Build Status Captcha
  • events - Build Status Before and After
  • flash - Build Status Share data between requests
  • debug - Build Status show detail debug infomaton on log

Getting Help

Cases

License

This project is under BSD License. See the LICENSE file for the full license text.