Echo

高性能、可扩展、极简的Go Web框架。(High performance, extensible, minimalist Go web framework.)

Github stars Tracking Chart

高性能、可扩展、极简的Go Web框架。

功能概述

  • 优化的HTTP路由器,它优先考虑路由
  • 构建强大而可扩展的RESTful API
  • Group API
  • 可扩展中间件框架
  • 在root,组或路由级别定义中间件
  • JSON,XML和表单有效载荷的数据绑定
  • 方便的功能发送各种HTTP响应
  • 集中的HTTP错误处理
  • 任何模板引擎的模板呈现
  • 为日志记录器定义您的格式
  • 高度可定制
  • 通过Let’s Encrypt自动TLS
  • HTTP/2支持

Overview

Name With Ownerlabstack/echo
Primary LanguageGo
Program languageGo (Language Count: 3)
Platform
License:MIT License
Release Count121
Last Release Namev4.12.0 (Posted on )
First Release Namev0.0.2 (Posted on )
Created At2015-03-01 17:43:01
Pushed At2024-04-29 14:49:49
Last Commit At2024-04-15 21:31:01
Stargazers Count28.6k
Watchers Count527
Fork Count2.2k
Commits Count1.7k
Has Issues Enabled
Issues Count1402
Issue Open Count43
Pull Requests Count566
Pull Requests Open Count19
Pull Requests Close Count378
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

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

Installation

// go get github.com/labstack/echo/{version}
go get github.com/labstack/echo/v4

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

To the top