cloudwego / hertz

Go HTTP framework with high-performance and strong-extensibility for building micro-services.
https://www.cloudwego.io
Apache License 2.0
5.38k stars 529 forks source link
go http microservices

Hertz

English | 中文

Release WebSite License Go Report Card OpenIssue ClosedIssue Stars Forks

Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was designed with reference to other open-source frameworks like fasthttp, gin, echo and combined with the internal requirements in ByteDance. At present, it has been widely used inside ByteDance. Nowadays, more and more microservices use Golang. If you have requirements for microservice performance and hope that the framework can fully meet the internal customizable requirements, Hertz will be a good choice.

Basic Features

Extensions Description
Autotls Make Hertz support Let's Encrypt.
Http2 HTTP2 support for Hertz.
Websocket Enable Hertz to support the Websocket protocol.
Etag Support ETag (or entity tag) HTTP response header for Hertz.
Limiter Provides a current limiter based on the bbr algorithm.
Monitor-prometheus Provides service monitoring based on Prometheus.
Obs-opentelemetry Hertz's Opentelemetry extension that supports Metric, Logger, Tracing and works out of the box.
Opensergo The Opensergo extension.
Pprof Extension for Hertz integration with Pprof.
Registry Provides service registry and discovery functions. So far, the supported service discovery extensions are nacos, consul, etcd, eureka, polaris, servicecomb, zookeeper, redis.
Sentry Sentry extension provides some unified interfaces to help users perform real-time error monitoring.
Tracer Link tracing based on Opentracing.
Basicauth Basicauth middleware can provide HTTP basic authentication.
Jwt Jwt extension.
Keyauth Provides token-based authentication.
Requestid Add request id in response.
Sessions Session middleware with multi-state store support.
Casbin Supports various access control models by Casbin.
Cors Provides cross-domain resource sharing support.
Csrf Csrf middleware is used to prevent cross-site request forgery attacks.
Secure Secure middleware with multiple configuration items.
Gzip A Gzip extension with multiple options.
I18n Helps translate Hertz programs into multi programming languages.
Lark Use hertz handle Lark/Feishu card message and event callback.
Loadbalance Provides load balancing algorithms for Hertz.
Logger Logger extension for Hertz, which provides support for zap, logrus, zerologs logging frameworks.
Recovery Recovery middleware for Hertz.
Reverseproxy Implement a reverse proxy.
Swagger Automatically generate RESTful API documentation with Swagger 2.0.
Cache Hertz middleware for cache HTTP response with multi-backend support

Blogs

Contributing

RoadMap

Hertz RoadMap

License

Hertz is distributed under the Apache License, version 2.0. The licenses of third party dependencies of Hertz are explained here.

Community

LarkGroup

Contributors

Thank you for your contribution to Hertz!

Contributors

Landscapes

  

CloudWeGo enriches the CNCF CLOUD NATIVE Landscape.