Repository files navigation

Hertz

English | 中文

ReleaseWebSiteLicenseGo Report CardOpenIssueClosedIssueStarsForks

Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was originally a fork of fasthttp and inspired by 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

  • High usability

    During the development process, it is often more important to write the correct code quickly. Therefore, in the iterative process of Hertz, we actively listen to users' opinions and continue to polish the framework, hoping to provide users with a better user experience and help users write correct code faster.

  • High performance

    Hertz uses the self-developed high-performance network library Netpoll by default. In some special scenarios, compared to Go Net, Hertz has certain advantages in QPS and time delay. For performance data, please refer to the Echo data in the figure below.

    Comparison of four frameworks: Performance Comparison of three frameworks: Performance For detailed performance data, please refer to hertz-benchmark.

  • High extensibility

    Hertz adopts a layered design, providing more interfaces and default extension implementations. Users can also extend by themselves. At the same time, thanks to the layered design of the framework, the extensibility of the framework will be much greater. At present, only stable capabilities are open-sourced to the community. More planning refers to RoadMap.

  • Multi-protocol support

    The Hertz framework provides HTTP/1.1 and ALPN protocol support natively. In addition, due to the layered design, Hertz even supports custom build protocol resolution logic to meet any needs of protocol layer extensions.

  • Network layer switching capability

    Hertz implements the function to switch between Netpoll and Go Net on demand. Users can choose the appropriate network library for different scenarios. And Hertz also supports the extension of network library in the form of plug-ins.

Documentation

Example

The Hertz-Examples repository provides code out of the box. more

Basic Features

Contains introduction and use of general middleware, context selection, data binding, data rendering, direct access, logging, error handling. more

Observability

Contains instrumentation, logging, tracing. more

Framework Extension

Contains network library extensions, protocol extensions, logger extensions, monitoring extensions. more

Reference

Framework configurable items list. more

FAQ

Frequently Asked Questions. more

Performance

Performance testing can only provide a relative reference. In production, there are many factors that can affect actual performance. We provide the hertz-benchmark project to track and compare the performance of Hertz and other frameworks in different situations for reference.

Related Projects

  • Netpoll: A high-performance network library. Hertz integrated by default.
  • Example: Use examples of Hertz.

Extensions

Hertz-contrib is a partial extension library of Hertz, which users can integrate into Hertz through options according to their needs, built and maintained by the community.

ExtensionsDescription
AutotlsMake Hertz support Let's Encrypt.
Http2HTTP2 support for Hertz.
WebsocketEnable Hertz to support the Websocket protocol.
EtagSupport ETag (or entity tag) HTTP response header for Hertz.
LimiterProvides a current limiter based on the bbr algorithm.
Monitor-prometheusProvides service monitoring based on Prometheus.
Obs-opentelemetryHertz's Opentelemetry extension that supports Metric, Logger, Tracing and works out of the box.
OpensergoThe Opensergo extension.
PprofExtension for Hertz integration with Pprof.
RegistryProvides service registry and discovery functions. So far, the supported service discovery extensions are nacos, consul, etcd, eureka, polaris, servicecomb, zookeeper, redis.
SentrySentry extension provides some unified interfaces to help users perform real-time error monitoring.
TracerLink tracing based on Opentracing.
BasicauthBasicauth middleware can provide HTTP basic authentication.
JwtJwt extension.
KeyauthProvides token-based authentication.
RequestidAdd request id in response.
SessionsSession middleware with multi-state store support.
CasbinSupports various access control models by Casbin.
CorsProvides cross-domain resource sharing support.
CsrfCsrf middleware is used to prevent cross-site request forgery attacks.
SecureSecure middleware with multiple configuration items.
GzipA Gzip extension with multiple options.
I18nHelps translate Hertz programs into multi programming languages.
LarkUse hertz handle Lark/Feishu card message and event callback.
LoadbalanceProvides load balancing algorithms for Hertz.
LoggerLogger extension for Hertz, which provides support for zap, logrus, zerologs logging frameworks.
RecoveryRecovery middleware for Hertz.
ReverseproxyImplement a reverse proxy.
SwaggerAutomatically generate RESTful API documentation with Swagger 2.0.
CacheHertz middleware for cache HTTP response with multi-backend support

Blogs

Contributing

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.

About

Go HTTP framework with high-performance and strong-extensibility for building micro-services.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Hertz

English | 中文

ReleaseWebSiteLicenseGo Report CardOpenIssueClosedIssueStarsForks

Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was originally a fork of fasthttp and inspired by 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

  • High usability

    During the development process, it is often more important to write the correct code quickly. Therefore, in the iterative process of Hertz, we actively listen to users' opinions and continue to polish the framework, hoping to provide users with a better user experience and help users write correct code faster.

  • High performance

    Hertz uses the self-developed high-performance network library Netpoll by default. In some special scenarios, compared to Go Net, Hertz has certain advantages in QPS and time delay. For performance data, please refer to the Echo data in the figure below.

    Comparison of four frameworks: Performance Comparison of three frameworks: Performance For detailed performance data, please refer to hertz-benchmark.

  • High extensibility

    Hertz adopts a layered design, providing more interfaces and default extension implementations. Users can also extend by themselves. At the same time, thanks to the layered design of the framework, the extensibility of the framework will be much greater. At present, only stable capabilities are open-sourced to the community. More planning refers to RoadMap.

  • Multi-protocol support

    The Hertz framework provides HTTP/1.1 and ALPN protocol support natively. In addition, due to the layered design, Hertz even supports custom build protocol resolution logic to meet any needs of protocol layer extensions.

  • Network layer switching capability

    Hertz implements the function to switch between Netpoll and Go Net on demand. Users can choose the appropriate network library for different scenarios. And Hertz also supports the extension of network library in the form of plug-ins.

Documentation

Example

The Hertz-Examples repository provides code out of the box. more

Basic Features

Contains introduction and use of general middleware, context selection, data binding, data rendering, direct access, logging, error handling. more

Observability

Contains instrumentation, logging, tracing. more

Framework Extension

Contains network library extensions, protocol extensions, logger extensions, monitoring extensions. more

Reference

Framework configurable items list. more

FAQ

Frequently Asked Questions. more

Performance

Performance testing can only provide a relative reference. In production, there are many factors that can affect actual performance. We provide the hertz-benchmark project to track and compare the performance of Hertz and other frameworks in different situations for reference.

Related Projects

  • Netpoll: A high-performance network library. Hertz integrated by default.
  • Example: Use examples of Hertz.

Extensions

Hertz-contrib is a partial extension library of Hertz, which users can integrate into Hertz through options according to their needs, built and maintained by the community.

ExtensionsDescription
AutotlsMake Hertz support Let's Encrypt.
Http2HTTP2 support for Hertz.
WebsocketEnable Hertz to support the Websocket protocol.
EtagSupport ETag (or entity tag) HTTP response header for Hertz.
LimiterProvides a current limiter based on the bbr algorithm.
Monitor-prometheusProvides service monitoring based on Prometheus.
Obs-opentelemetryHertz's Opentelemetry extension that supports Metric, Logger, Tracing and works out of the box.
OpensergoThe Opensergo extension.
PprofExtension for Hertz integration with Pprof.
RegistryProvides service registry and discovery functions. So far, the supported service discovery extensions are nacos, consul, etcd, eureka, polaris, servicecomb, zookeeper, redis.
SentrySentry extension provides some unified interfaces to help users perform real-time error monitoring.
TracerLink tracing based on Opentracing.
BasicauthBasicauth middleware can provide HTTP basic authentication.
JwtJwt extension.
KeyauthProvides token-based authentication.
RequestidAdd request id in response.
SessionsSession middleware with multi-state store support.
CasbinSupports various access control models by Casbin.
CorsProvides cross-domain resource sharing support.
CsrfCsrf middleware is used to prevent cross-site request forgery attacks.
SecureSecure middleware with multiple configuration items.
GzipA Gzip extension with multiple options.
I18nHelps translate Hertz programs into multi programming languages.
LarkUse hertz handle Lark/Feishu card message and event callback.
LoadbalanceProvides load balancing algorithms for Hertz.
LoggerLogger extension for Hertz, which provides support for zap, logrus, zerologs logging frameworks.
RecoveryRecovery middleware for Hertz.
ReverseproxyImplement a reverse proxy.
SwaggerAutomatically generate RESTful API documentation with Swagger 2.0.
CacheHertz middleware for cache HTTP response with multi-backend support

Blogs

Contributing

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.

About

Go HTTP framework with high-performance and strong-extensibility for building micro-services.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Hertz

English | 中文

ReleaseWebSiteLicenseGo Report CardOpenIssueClosedIssueStarsForks

Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was originally a fork of fasthttp and inspired by 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

  • High usability

    During the development process, it is often more important to write the correct code quickly. Therefore, in the iterative process of Hertz, we actively listen to users' opinions and continue to polish the framework, hoping to provide users with a better user experience and help users write correct code faster.

  • High performance

    Hertz uses the self-developed high-performance network library Netpoll by default. In some special scenarios, compared to Go Net, Hertz has certain advantages in QPS and time delay. For performance data, please refer to the Echo data in the figure below.

    Comparison of four frameworks: Performance Comparison of three frameworks: Performance For detailed performance data, please refer to hertz-benchmark.

  • High extensibility

    Hertz adopts a layered design, providing more interfaces and default extension implementations. Users can also extend by themselves. At the same time, thanks to the layered design of the framework, the extensibility of the framework will be much greater. At present, only stable capabilities are open-sourced to the community. More planning refers to RoadMap.

  • Multi-protocol support

    The Hertz framework provides HTTP/1.1 and ALPN protocol support natively. In addition, due to the layered design, Hertz even supports custom build protocol resolution logic to meet any needs of protocol layer extensions.

  • Network layer switching capability

    Hertz implements the function to switch between Netpoll and Go Net on demand. Users can choose the appropriate network library for different scenarios. And Hertz also supports the extension of network library in the form of plug-ins.

Documentation

Example

The Hertz-Examples repository provides code out of the box. more

Basic Features

Contains introduction and use of general middleware, context selection, data binding, data rendering, direct access, logging, error handling. more

Observability

Contains instrumentation, logging, tracing. more

Framework Extension

Contains network library extensions, protocol extensions, logger extensions, monitoring extensions. more

Reference

Framework configurable items list. more

FAQ

Frequently Asked Questions. more

Performance

Performance testing can only provide a relative reference. In production, there are many factors that can affect actual performance. We provide the hertz-benchmark project to track and compare the performance of Hertz and other frameworks in different situations for reference.

Related Projects

  • Netpoll: A high-performance network library. Hertz integrated by default.
  • Example: Use examples of Hertz.

Extensions

Hertz-contrib is a partial extension library of Hertz, which users can integrate into Hertz through options according to their needs, built and maintained by the community.

ExtensionsDescription
AutotlsMake Hertz support Let's Encrypt.
Http2HTTP2 support for Hertz.
WebsocketEnable Hertz to support the Websocket protocol.
EtagSupport ETag (or entity tag) HTTP response header for Hertz.
LimiterProvides a current limiter based on the bbr algorithm.
Monitor-prometheusProvides service monitoring based on Prometheus.
Obs-opentelemetryHertz's Opentelemetry extension that supports Metric, Logger, Tracing and works out of the box.
OpensergoThe Opensergo extension.
PprofExtension for Hertz integration with Pprof.
RegistryProvides service registry and discovery functions. So far, the supported service discovery extensions are nacos, consul, etcd, eureka, polaris, servicecomb, zookeeper, redis.
SentrySentry extension provides some unified interfaces to help users perform real-time error monitoring.
TracerLink tracing based on Opentracing.
BasicauthBasicauth middleware can provide HTTP basic authentication.
JwtJwt extension.
KeyauthProvides token-based authentication.
RequestidAdd request id in response.
SessionsSession middleware with multi-state store support.
CasbinSupports various access control models by Casbin.
CorsProvides cross-domain resource sharing support.
CsrfCsrf middleware is used to prevent cross-site request forgery attacks.
SecureSecure middleware with multiple configuration items.
GzipA Gzip extension with multiple options.
I18nHelps translate Hertz programs into multi programming languages.
LarkUse hertz handle Lark/Feishu card message and event callback.
LoadbalanceProvides load balancing algorithms for Hertz.
LoggerLogger extension for Hertz, which provides support for zap, logrus, zerologs logging frameworks.
RecoveryRecovery middleware for Hertz.
ReverseproxyImplement a reverse proxy.
SwaggerAutomatically generate RESTful API documentation with Swagger 2.0.
CacheHertz middleware for cache HTTP response with multi-backend support

Blogs

Contributing

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.

About

Go HTTP framework with high-performance and strong-extensibility for building micro-services.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Hertz

English | 中文

ReleaseWebSiteLicenseGo Report CardOpenIssueClosedIssueStarsForks

Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was originally a fork of fasthttp and inspired by 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

  • High usability

    During the development process, it is often more important to write the correct code quickly. Therefore, in the iterative process of Hertz, we actively listen to users' opinions and continue to polish the framework, hoping to provide users with a better user experience and help users write correct code faster.

  • High performance

    Hertz uses the self-developed high-performance network library Netpoll by default. In some special scenarios, compared to Go Net, Hertz has certain advantages in QPS and time delay. For performance data, please refer to the Echo data in the figure below.

    Comparison of four frameworks: Performance Comparison of three frameworks: Performance For detailed performance data, please refer to hertz-benchmark.

  • High extensibility

    Hertz adopts a layered design, providing more interfaces and default extension implementations. Users can also extend by themselves. At the same time, thanks to the layered design of the framework, the extensibility of the framework will be much greater. At present, only stable capabilities are open-sourced to the community. More planning refers to RoadMap.

  • Multi-protocol support

    The Hertz framework provides HTTP/1.1 and ALPN protocol support natively. In addition, due to the layered design, Hertz even supports custom build protocol resolution logic to meet any needs of protocol layer extensions.

  • Network layer switching capability

    Hertz implements the function to switch between Netpoll and Go Net on demand. Users can choose the appropriate network library for different scenarios. And Hertz also supports the extension of network library in the form of plug-ins.

Documentation

Example

The Hertz-Examples repository provides code out of the box. more

Basic Features

Contains introduction and use of general middleware, context selection, data binding, data rendering, direct access, logging, error handling. more

Observability

Contains instrumentation, logging, tracing. more

Framework Extension

Contains network library extensions, protocol extensions, logger extensions, monitoring extensions. more

Reference

Framework configurable items list. more

FAQ

Frequently Asked Questions. more

Performance

Performance testing can only provide a relative reference. In production, there are many factors that can affect actual performance. We provide the hertz-benchmark project to track and compare the performance of Hertz and other frameworks in different situations for reference.

Related Projects

  • Netpoll: A high-performance network library. Hertz integrated by default.
  • Example: Use examples of Hertz.

Extensions

Hertz-contrib is a partial extension library of Hertz, which users can integrate into Hertz through options according to their needs, built and maintained by the community.

ExtensionsDescription
AutotlsMake Hertz support Let's Encrypt.
Http2HTTP2 support for Hertz.
WebsocketEnable Hertz to support the Websocket protocol.
EtagSupport ETag (or entity tag) HTTP response header for Hertz.
LimiterProvides a current limiter based on the bbr algorithm.
Monitor-prometheusProvides service monitoring based on Prometheus.
Obs-opentelemetryHertz's Opentelemetry extension that supports Metric, Logger, Tracing and works out of the box.
OpensergoThe Opensergo extension.
PprofExtension for Hertz integration with Pprof.
RegistryProvides service registry and discovery functions. So far, the supported service discovery extensions are nacos, consul, etcd, eureka, polaris, servicecomb, zookeeper, redis.
SentrySentry extension provides some unified interfaces to help users perform real-time error monitoring.
TracerLink tracing based on Opentracing.
BasicauthBasicauth middleware can provide HTTP basic authentication.
JwtJwt extension.
KeyauthProvides token-based authentication.
RequestidAdd request id in response.
SessionsSession middleware with multi-state store support.
CasbinSupports various access control models by Casbin.
CorsProvides cross-domain resource sharing support.
CsrfCsrf middleware is used to prevent cross-site request forgery attacks.
SecureSecure middleware with multiple configuration items.
GzipA Gzip extension with multiple options.
I18nHelps translate Hertz programs into multi programming languages.
LarkUse hertz handle Lark/Feishu card message and event callback.
LoadbalanceProvides load balancing algorithms for Hertz.
LoggerLogger extension for Hertz, which provides support for zap, logrus, zerologs logging frameworks.
RecoveryRecovery middleware for Hertz.
ReverseproxyImplement a reverse proxy.
SwaggerAutomatically generate RESTful API documentation with Swagger 2.0.
CacheHertz middleware for cache HTTP response with multi-backend support

Blogs

Contributing

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.

About

Go HTTP framework with high-performance and strong-extensibility for building micro-services.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Hertz

English | 中文

ReleaseWebSiteLicenseGo Report CardOpenIssueClosedIssueStarsForks

Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was originally a fork of fasthttp and inspired by 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

  • High usability

    During the development process, it is often more important to write the correct code quickly. Therefore, in the iterative process of Hertz, we actively listen to users' opinions and continue to polish the framework, hoping to provide users with a better user experience and help users write correct code faster.

  • High performance

    Hertz uses the self-developed high-performance network library Netpoll by default. In some special scenarios, compared to Go Net, Hertz has certain advantages in QPS and time delay. For performance data, please refer to the Echo data in the figure below.

    Comparison of four frameworks: Performance Comparison of three frameworks: Performance For detailed performance data, please refer to hertz-benchmark.

  • High extensibility

    Hertz adopts a layered design, providing more interfaces and default extension implementations. Users can also extend by themselves. At the same time, thanks to the layered design of the framework, the extensibility of the framework will be much greater. At present, only stable capabilities are open-sourced to the community. More planning refers to RoadMap.

  • Multi-protocol support

    The Hertz framework provides HTTP/1.1 and ALPN protocol support natively. In addition, due to the layered design, Hertz even supports custom build protocol resolution logic to meet any needs of protocol layer extensions.

  • Network layer switching capability

    Hertz implements the function to switch between Netpoll and Go Net on demand. Users can choose the appropriate network library for different scenarios. And Hertz also supports the extension of network library in the form of plug-ins.

Documentation

Example

The Hertz-Examples repository provides code out of the box. more

Basic Features

Contains introduction and use of general middleware, context selection, data binding, data rendering, direct access, logging, error handling. more

Observability

Contains instrumentation, logging, tracing. more

Framework Extension

Contains network library extensions, protocol extensions, logger extensions, monitoring extensions. more

Reference

Framework configurable items list. more

FAQ

Frequently Asked Questions. more

Performance

Performance testing can only provide a relative reference. In production, there are many factors that can affect actual performance. We provide the hertz-benchmark project to track and compare the performance of Hertz and other frameworks in different situations for reference.

Related Projects

  • Netpoll: A high-performance network library. Hertz integrated by default.
  • Example: Use examples of Hertz.

Extensions

Hertz-contrib is a partial extension library of Hertz, which users can integrate into Hertz through options according to their needs, built and maintained by the community.

ExtensionsDescription
AutotlsMake Hertz support Let's Encrypt.
Http2HTTP2 support for Hertz.
WebsocketEnable Hertz to support the Websocket protocol.
EtagSupport ETag (or entity tag) HTTP response header for Hertz.
LimiterProvides a current limiter based on the bbr algorithm.
Monitor-prometheusProvides service monitoring based on Prometheus.
Obs-opentelemetryHertz's Opentelemetry extension that supports Metric, Logger, Tracing and works out of the box.
OpensergoThe Opensergo extension.
PprofExtension for Hertz integration with Pprof.
RegistryProvides service registry and discovery functions. So far, the supported service discovery extensions are nacos, consul, etcd, eureka, polaris, servicecomb, zookeeper, redis.
SentrySentry extension provides some unified interfaces to help users perform real-time error monitoring.
TracerLink tracing based on Opentracing.
BasicauthBasicauth middleware can provide HTTP basic authentication.
JwtJwt extension.
KeyauthProvides token-based authentication.
RequestidAdd request id in response.
SessionsSession middleware with multi-state store support.
CasbinSupports various access control models by Casbin.
CorsProvides cross-domain resource sharing support.
CsrfCsrf middleware is used to prevent cross-site request forgery attacks.
SecureSecure middleware with multiple configuration items.
GzipA Gzip extension with multiple options.
I18nHelps translate Hertz programs into multi programming languages.
LarkUse hertz handle Lark/Feishu card message and event callback.
LoadbalanceProvides load balancing algorithms for Hertz.
LoggerLogger extension for Hertz, which provides support for zap, logrus, zerologs logging frameworks.
RecoveryRecovery middleware for Hertz.
ReverseproxyImplement a reverse proxy.
SwaggerAutomatically generate RESTful API documentation with Swagger 2.0.
CacheHertz middleware for cache HTTP response with multi-backend support

Blogs

Contributing

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.

About

Go HTTP framework with high-performance and strong-extensibility for building micro-services.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Hertz

English | 中文

ReleaseWebSiteLicenseGo Report CardOpenIssueClosedIssueStarsForks

Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was originally a fork of fasthttp and inspired by 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

  • High usability

    During the development process, it is often more important to write the correct code quickly. Therefore, in the iterative process of Hertz, we actively listen to users' opinions and continue to polish the framework, hoping to provide users with a better user experience and help users write correct code faster.

  • High performance

    Hertz uses the self-developed high-performance network library Netpoll by default. In some special scenarios, compared to Go Net, Hertz has certain advantages in QPS and time delay. For performance data, please refer to the Echo data in the figure below.

    Comparison of four frameworks: Performance Comparison of three frameworks: Performance For detailed performance data, please refer to hertz-benchmark.

  • High extensibility

    Hertz adopts a layered design, providing more interfaces and default extension implementations. Users can also extend by themselves. At the same time, thanks to the layered design of the framework, the extensibility of the framework will be much greater. At present, only stable capabilities are open-sourced to the community. More planning refers to RoadMap.

  • Multi-protocol support

    The Hertz framework provides HTTP/1.1 and ALPN protocol support natively. In addition, due to the layered design, Hertz even supports custom build protocol resolution logic to meet any needs of protocol layer extensions.

  • Network layer switching capability

    Hertz implements the function to switch between Netpoll and Go Net on demand. Users can choose the appropriate network library for different scenarios. And Hertz also supports the extension of network library in the form of plug-ins.

Documentation

Example

The Hertz-Examples repository provides code out of the box. more

Basic Features

Contains introduction and use of general middleware, context selection, data binding, data rendering, direct access, logging, error handling. more

Observability

Contains instrumentation, logging, tracing. more

Framework Extension

Contains network library extensions, protocol extensions, logger extensions, monitoring extensions. more

Reference

Framework configurable items list. more

FAQ

Frequently Asked Questions. more

Performance

Performance testing can only provide a relative reference. In production, there are many factors that can affect actual performance. We provide the hertz-benchmark project to track and compare the performance of Hertz and other frameworks in different situations for reference.

Related Projects

  • Netpoll: A high-performance network library. Hertz integrated by default.
  • Example: Use examples of Hertz.

Extensions

Hertz-contrib is a partial extension library of Hertz, which users can integrate into Hertz through options according to their needs, built and maintained by the community.

ExtensionsDescription
AutotlsMake Hertz support Let's Encrypt.
Http2HTTP2 support for Hertz.
WebsocketEnable Hertz to support the Websocket protocol.
EtagSupport ETag (or entity tag) HTTP response header for Hertz.
LimiterProvides a current limiter based on the bbr algorithm.
Monitor-prometheusProvides service monitoring based on Prometheus.
Obs-opentelemetryHertz's Opentelemetry extension that supports Metric, Logger, Tracing and works out of the box.
OpensergoThe Opensergo extension.
PprofExtension for Hertz integration with Pprof.
RegistryProvides service registry and discovery functions. So far, the supported service discovery extensions are nacos, consul, etcd, eureka, polaris, servicecomb, zookeeper, redis.
SentrySentry extension provides some unified interfaces to help users perform real-time error monitoring.
TracerLink tracing based on Opentracing.
BasicauthBasicauth middleware can provide HTTP basic authentication.
JwtJwt extension.
KeyauthProvides token-based authentication.
RequestidAdd request id in response.
SessionsSession middleware with multi-state store support.
CasbinSupports various access control models by Casbin.
CorsProvides cross-domain resource sharing support.
CsrfCsrf middleware is used to prevent cross-site request forgery attacks.
SecureSecure middleware with multiple configuration items.
GzipA Gzip extension with multiple options.
I18nHelps translate Hertz programs into multi programming languages.
LarkUse hertz handle Lark/Feishu card message and event callback.
LoadbalanceProvides load balancing algorithms for Hertz.
LoggerLogger extension for Hertz, which provides support for zap, logrus, zerologs logging frameworks.
RecoveryRecovery middleware for Hertz.
ReverseproxyImplement a reverse proxy.
SwaggerAutomatically generate RESTful API documentation with Swagger 2.0.
CacheHertz middleware for cache HTTP response with multi-backend support

Blogs

Contributing

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.

About

Go HTTP framework with high-performance and strong-extensibility for building micro-services.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Hertz

English | 中文

ReleaseWebSiteLicenseGo Report CardOpenIssueClosedIssueStarsForks

Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was originally a fork of fasthttp and inspired by 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

  • High usability

    During the development process, it is often more important to write the correct code quickly. Therefore, in the iterative process of Hertz, we actively listen to users' opinions and continue to polish the framework, hoping to provide users with a better user experience and help users write correct code faster.

  • High performance

    Hertz uses the self-developed high-performance network library Netpoll by default. In some special scenarios, compared to Go Net, Hertz has certain advantages in QPS and time delay. For performance data, please refer to the Echo data in the figure below.

    Comparison of four frameworks: Performance Comparison of three frameworks: Performance For detailed performance data, please refer to hertz-benchmark.

  • High extensibility

    Hertz adopts a layered design, providing more interfaces and default extension implementations. Users can also extend by themselves. At the same time, thanks to the layered design of the framework, the extensibility of the framework will be much greater. At present, only stable capabilities are open-sourced to the community. More planning refers to RoadMap.

  • Multi-protocol support

    The Hertz framework provides HTTP/1.1 and ALPN protocol support natively. In addition, due to the layered design, Hertz even supports custom build protocol resolution logic to meet any needs of protocol layer extensions.

  • Network layer switching capability

    Hertz implements the function to switch between Netpoll and Go Net on demand. Users can choose the appropriate network library for different scenarios. And Hertz also supports the extension of network library in the form of plug-ins.

Documentation

Example

The Hertz-Examples repository provides code out of the box. more

Basic Features

Contains introduction and use of general middleware, context selection, data binding, data rendering, direct access, logging, error handling. more

Observability

Contains instrumentation, logging, tracing. more

Framework Extension

Contains network library extensions, protocol extensions, logger extensions, monitoring extensions. more

Reference

Framework configurable items list. more

FAQ

Frequently Asked Questions. more

Performance

Performance testing can only provide a relative reference. In production, there are many factors that can affect actual performance. We provide the hertz-benchmark project to track and compare the performance of Hertz and other frameworks in different situations for reference.

Related Projects

  • Netpoll: A high-performance network library. Hertz integrated by default.
  • Example: Use examples of Hertz.

Extensions

Hertz-contrib is a partial extension library of Hertz, which users can integrate into Hertz through options according to their needs, built and maintained by the community.

ExtensionsDescription
AutotlsMake Hertz support Let's Encrypt.
Http2HTTP2 support for Hertz.
WebsocketEnable Hertz to support the Websocket protocol.
EtagSupport ETag (or entity tag) HTTP response header for Hertz.
LimiterProvides a current limiter based on the bbr algorithm.
Monitor-prometheusProvides service monitoring based on Prometheus.
Obs-opentelemetryHertz's Opentelemetry extension that supports Metric, Logger, Tracing and works out of the box.
OpensergoThe Opensergo extension.
PprofExtension for Hertz integration with Pprof.
RegistryProvides service registry and discovery functions. So far, the supported service discovery extensions are nacos, consul, etcd, eureka, polaris, servicecomb, zookeeper, redis.
SentrySentry extension provides some unified interfaces to help users perform real-time error monitoring.
TracerLink tracing based on Opentracing.
BasicauthBasicauth middleware can provide HTTP basic authentication.
JwtJwt extension.
KeyauthProvides token-based authentication.
RequestidAdd request id in response.
SessionsSession middleware with multi-state store support.
CasbinSupports various access control models by Casbin.
CorsProvides cross-domain resource sharing support.
CsrfCsrf middleware is used to prevent cross-site request forgery attacks.
SecureSecure middleware with multiple configuration items.
GzipA Gzip extension with multiple options.
I18nHelps translate Hertz programs into multi programming languages.
LarkUse hertz handle Lark/Feishu card message and event callback.
LoadbalanceProvides load balancing algorithms for Hertz.
LoggerLogger extension for Hertz, which provides support for zap, logrus, zerologs logging frameworks.
RecoveryRecovery middleware for Hertz.
ReverseproxyImplement a reverse proxy.
SwaggerAutomatically generate RESTful API documentation with Swagger 2.0.
CacheHertz middleware for cache HTTP response with multi-backend support

Blogs

Contributing

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.

About

Go HTTP framework with high-performance and strong-extensibility for building micro-services.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Hertz

English | 中文

ReleaseWebSiteLicenseGo Report CardOpenIssueClosedIssueStarsForks

Hertz [həːts] is a high-usability, high-performance and high-extensibility Golang HTTP framework that helps developers build microservices. It was originally a fork of fasthttp and inspired by 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

  • High usability

    During the development process, it is often more important to write the correct code quickly. Therefore, in the iterative process of Hertz, we actively listen to users' opinions and continue to polish the framework, hoping to provide users with a better user experience and help users write correct code faster.

  • High performance

    Hertz uses the self-developed high-performance network library Netpoll by default. In some special scenarios, compared to Go Net, Hertz has certain advantages in QPS and time delay. For performance data, please refer to the Echo data in the figure below.

    Comparison of four frameworks: Performance Comparison of three frameworks: Performance For detailed performance data, please refer to hertz-benchmark.

  • High extensibility

    Hertz adopts a layered design, providing more interfaces and default extension implementations. Users can also extend by themselves. At the same time, thanks to the layered design of the framework, the extensibility of the framework will be much greater. At present, only stable capabilities are open-sourced to the community. More planning refers to RoadMap.

  • Multi-protocol support

    The Hertz framework provides HTTP/1.1 and ALPN protocol support natively. In addition, due to the layered design, Hertz even supports custom build protocol resolution logic to meet any needs of protocol layer extensions.

  • Network layer switching capability

    Hertz implements the function to switch between Netpoll and Go Net on demand. Users can choose the appropriate network library for different scenarios. And Hertz also supports the extension of network library in the form of plug-ins.

Documentation

Example

The Hertz-Examples repository provides code out of the box. more

Basic Features

Contains introduction and use of general middleware, context selection, data binding, data rendering, direct access, logging, error handling. more

Observability

Contains instrumentation, logging, tracing. more

Framework Extension

Contains network library extensions, protocol extensions, logger extensions, monitoring extensions. more

Reference

Framework configurable items list. more

FAQ

Frequently Asked Questions. more

Performance

Performance testing can only provide a relative reference. In production, there are many factors that can affect actual performance. We provide the hertz-benchmark project to track and compare the performance of Hertz and other frameworks in different situations for reference.

Related Projects

  • Netpoll: A high-performance network library. Hertz integrated by default.
  • Example: Use examples of Hertz.

Extensions

Hertz-contrib is a partial extension library of Hertz, which users can integrate into Hertz through options according to their needs, built and maintained by the community.

ExtensionsDescription
AutotlsMake Hertz support Let's Encrypt.
Http2HTTP2 support for Hertz.
WebsocketEnable Hertz to support the Websocket protocol.
EtagSupport ETag (or entity tag) HTTP response header for Hertz.
LimiterProvides a current limiter based on the bbr algorithm.
Monitor-prometheusProvides service monitoring based on Prometheus.
Obs-opentelemetryHertz's Opentelemetry extension that supports Metric, Logger, Tracing and works out of the box.
OpensergoThe Opensergo extension.
PprofExtension for Hertz integration with Pprof.
RegistryProvides service registry and discovery functions. So far, the supported service discovery extensions are nacos, consul, etcd, eureka, polaris, servicecomb, zookeeper, redis.
SentrySentry extension provides some unified interfaces to help users perform real-time error monitoring.
TracerLink tracing based on Opentracing.
BasicauthBasicauth middleware can provide HTTP basic authentication.
JwtJwt extension.
KeyauthProvides token-based authentication.
RequestidAdd request id in response.
SessionsSession middleware with multi-state store support.
CasbinSupports various access control models by Casbin.
CorsProvides cross-domain resource sharing support.
CsrfCsrf middleware is used to prevent cross-site request forgery attacks.
SecureSecure middleware with multiple configuration items.
GzipA Gzip extension with multiple options.
I18nHelps translate Hertz programs into multi programming languages.
LarkUse hertz handle Lark/Feishu card message and event callback.
LoadbalanceProvides load balancing algorithms for Hertz.
LoggerLogger extension for Hertz, which provides support for zap, logrus, zerologs logging frameworks.
RecoveryRecovery middleware for Hertz.
ReverseproxyImplement a reverse proxy.
SwaggerAutomatically generate RESTful API documentation with Swagger 2.0.
CacheHertz middleware for cache HTTP response with multi-backend support

Blogs

Contributing

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.

About

Go HTTP framework with high-performance and strong-extensibility for building micro-services.

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages