Micro-kernel & pluggable web framework for Go

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

README.md

Tango Build Status 简体中文

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.