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.