mirror of https://github.com/sunface/rust-course
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			|  | 6 years ago | |
|---|---|---|
| .. | ||
| middleware | 6 years ago | |
| .editorconfig | 6 years ago | |
| .gitattributes | 6 years ago | |
| .gitignore | 6 years ago | |
| .travis.yml | 6 years ago | |
| LICENSE | 6 years ago | |
| Makefile | 6 years ago | |
| README.md | 6 years ago | |
| bind.go | 6 years ago | |
| context.go | 6 years ago | |
| echo.go | 6 years ago | |
| group.go | 6 years ago | |
| log.go | 6 years ago | |
| response.go | 6 years ago | |
| router.go | 6 years ago | |
		
			
				
				README.md
			
		
		
	
	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"
	"github.com/labstack/echo/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
- Vishal Rana - Author
- Nitin Rana - Consultant
- Contributors