1
0
mirror of https://github.com/labstack/echo.git synced 2024-11-28 08:38:39 +02:00
High performance, minimalist Go web framework https://echo.labstack.com/
Go to file
2019-10-04 19:58:52 +02:00
_fixture Test cased for Echo#Start/Shutdown 2016-09-24 17:50:38 -07:00
.github Update ISSUE_TEMPLATE.md 2019-08-23 09:02:25 -07:00
middleware Add ReferrerPolicy to Secure middleware (#1363) 2019-08-01 15:27:09 -07:00
.editorconfig updated docs 2016-11-16 21:26:56 -08:00
.gitattributes Updated website and examples 2017-01-17 10:47:16 -08:00
.gitignore Fixed build 2017-06-28 19:08:45 -07:00
.travis.yml Add go 1.12 to TravisCI (#1294) 2019-02-26 10:15:24 -08:00
bind_test.go dont return 400 for empty bodies (#1410) 2019-09-30 10:56:32 -07:00
bind.go dont return 400 for empty bodies (#1410) 2019-09-30 10:56:32 -07:00
context_test.go Closes #1353 2019-06-27 10:52:17 -07:00
context.go Assign new ResponseWriter after calling http.HandlerFunc (#1341) 2019-08-07 11:10:18 -07:00
echo_test.go Enhanced default http error handler 2019-08-01 22:52:42 -07:00
echo.go Updated dep & bumped v4.1.10 2019-08-17 07:39:36 -07:00
go.mod Updated dep & bumped v4.1.10 2019-08-17 07:39:36 -07:00
go.sum Updated dep & bumped v4.1.10 2019-08-17 07:39:36 -07:00
group_test.go Add unrelated route to group test with match any 2019-10-04 19:58:52 +02:00
group.go Bumped v4.1.5 2019-04-29 22:54:49 -07:00
LICENSE Update website 2017-01-09 20:20:51 -08:00
log.go the logging interface add SetHeader method (#1092) 2018-09-28 10:47:23 -07:00
Makefile Updated ci 2018-11-10 11:01:00 -08:00
README.md Fixed indentation in code example. (#1338) 2019-05-14 10:17:08 -07:00
response_test.go Fix for #1334 (#1335) 2019-05-23 22:13:57 -07:00
response.go Fix for #1334 (#1335) 2019-05-23 22:13:57 -07:00
router_test.go refs #1412: Fix multi level match any routes 2019-10-03 19:30:46 +02:00
router.go refs #1412: Fix multi level match any routes 2019-10-03 19:30:46 +02:00

Sourcegraph GoDoc Go Report Card Build Status Codecov Join the chat at https://gitter.im/labstack/echo Forum Twitter License

Supported Go versions

As of version 4.0.0, Echo is available as a Go module. Therefore a Go version capable of understanding /vN suffixed imports is required:

  • 1.9.7+
  • 1.10.3+
  • 1.11+

Any of these versions will allow you to import Echo as github.com/labstack/echo/v4 which is the recommended way of using Echo going forward.

For older versions, please use the latest v3 tag.

Feature Overview

  • Optimized HTTP router which smartly prioritize routes
  • Build robust and scalable RESTful APIs
  • Group APIs
  • Extensible middleware framework
  • Define middleware at root, group or route level
  • Data binding for JSON, XML and form payload
  • Handy functions to send variety of HTTP responses
  • Centralized HTTP error handling
  • Template rendering with any template engine
  • Define your format for the logger
  • Highly customizable
  • Automatic TLS via Let’s Encrypt
  • HTTP/2 support

Benchmarks

Date: 2018/03/15
Source: https://github.com/vishr/web-framework-benchmark
Lower is better!

Guide

Example

package main

import (
  "net/http"
  "github.com/labstack/echo/v4"
  "github.com/labstack/echo/v4/middleware"
)

func main() {
  // Echo instance
  e := echo.New()

  // Middleware
  e.Use(middleware.Logger())
  e.Use(middleware.Recover())

  // Routes
  e.GET("/", hello)

  // Start server
  e.Logger.Fatal(e.Start(":1323"))
}

// Handler
func hello(c echo.Context) error {
  return c.String(http.StatusOK, "Hello, World!")
}

Help

Contribute

Use issues for everything

  • For a small change, just send a PR.
  • For bigger changes open an issue for discussion before sending a PR.
  • PR should have:
    • Test case
    • Documentation
    • Example (If it makes sense)
  • You can also contribute by:
    • Reporting issues
    • Suggesting new features or enhancements
    • Improve/fix documentation

Credits

License

MIT