Repository files navigation

Bifrost GoDocBuildGoReportSecurityCoverage StatusCodeWiki

A low-latency and high-throughput API gateway library in Go

Reasons to use Bifrost

  1. Low latency and high throughput.
  2. Allows writing middlewares in native Go.
  3. Easy to integrate with existing Go services.
  4. Easy migration from Nginx. Leverage your Nginx experience.
  5. Built as an SDK/library instead of an artifact.

Feature highlights

  1. Support for writing middleware in Go.
  2. Low latency and high throughput (powered by the Hertz framework).
  3. Millisecond-level graceful reload for route updates without interrupting requests.
  4. Get gateway configurations from local files or configuration centers.
  5. Built-in Prometheus monitoring.
  6. Built-in OpenTelemetry tracing.
  7. Supports HTTP1.1/HTTP2/H2C/Webosocket/GRPC protocols.
  8. Multiple built-in balancer algorithm (round_robin, random, weighted, chash) and allow to build your own

Comparative Analysis

BifrostNginx
SDK for building your own gateway
Write your middlewares in native Go (not TinyGo)
Rich built-in middlewares
Millisecond-level graceful reloads for dynamic configuration updates
Blue-green deployment for services
High connection pool reuse rate
Easy integration with existing Go programs
Built-in Prometheus monitoring
Built-in OpenTelemetry tracing
Native k8s service discovery
Built-in web application firewall and support OWASP Core Rule Set
HTTP2 upstream support
Multiple configuration providers
Standardized and User-Friendly Configuration
Multiple built-in balancer algorithm and allow to build your own
High concurrency and low latency
GRPC Load Balancer
Background task support

Overview

flow

servers: Server configuration, supports middlewares, controlling which port to expose
routes: Route configuration, controls request path forwarding rules to specific services
services: Service configuration, controls service details such as protocol information
upstreams: Upstream configuration, manages load balancing rules for backend hosts

Get Started

Set up a high-performance API gateway in 5 minutes

Documents

  1. Configuration
  2. Providers
  3. Routes
  4. Middlewares
  5. Directive

Credit

  1. CloudWeGo

About

A low-latency and high-throughput API gateway library in Go

Topics

Resources

Stars

10 stars

Watchers

1 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

Bifrost GoDocBuildGoReportSecurityCoverage StatusCodeWiki

A low-latency and high-throughput API gateway library in Go

Reasons to use Bifrost

  1. Low latency and high throughput.
  2. Allows writing middlewares in native Go.
  3. Easy to integrate with existing Go services.
  4. Easy migration from Nginx. Leverage your Nginx experience.
  5. Built as an SDK/library instead of an artifact.

Feature highlights

  1. Support for writing middleware in Go.
  2. Low latency and high throughput (powered by the Hertz framework).
  3. Millisecond-level graceful reload for route updates without interrupting requests.
  4. Get gateway configurations from local files or configuration centers.
  5. Built-in Prometheus monitoring.
  6. Built-in OpenTelemetry tracing.
  7. Supports HTTP1.1/HTTP2/H2C/Webosocket/GRPC protocols.
  8. Multiple built-in balancer algorithm (round_robin, random, weighted, chash) and allow to build your own

Comparative Analysis

BifrostNginx
SDK for building your own gateway
Write your middlewares in native Go (not TinyGo)
Rich built-in middlewares
Millisecond-level graceful reloads for dynamic configuration updates
Blue-green deployment for services
High connection pool reuse rate
Easy integration with existing Go programs
Built-in Prometheus monitoring
Built-in OpenTelemetry tracing
Native k8s service discovery
Built-in web application firewall and support OWASP Core Rule Set
HTTP2 upstream support
Multiple configuration providers
Standardized and User-Friendly Configuration
Multiple built-in balancer algorithm and allow to build your own
High concurrency and low latency
GRPC Load Balancer
Background task support

Overview

flow

servers: Server configuration, supports middlewares, controlling which port to expose
routes: Route configuration, controls request path forwarding rules to specific services
services: Service configuration, controls service details such as protocol information
upstreams: Upstream configuration, manages load balancing rules for backend hosts

Get Started

Set up a high-performance API gateway in 5 minutes

Documents

  1. Configuration
  2. Providers
  3. Routes
  4. Middlewares
  5. Directive

Credit

  1. CloudWeGo

About

A low-latency and high-throughput API gateway library in Go

Topics

Resources

Stars

10 stars

Watchers

1 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

Bifrost GoDocBuildGoReportSecurityCoverage StatusCodeWiki

A low-latency and high-throughput API gateway library in Go

Reasons to use Bifrost

  1. Low latency and high throughput.
  2. Allows writing middlewares in native Go.
  3. Easy to integrate with existing Go services.
  4. Easy migration from Nginx. Leverage your Nginx experience.
  5. Built as an SDK/library instead of an artifact.

Feature highlights

  1. Support for writing middleware in Go.
  2. Low latency and high throughput (powered by the Hertz framework).
  3. Millisecond-level graceful reload for route updates without interrupting requests.
  4. Get gateway configurations from local files or configuration centers.
  5. Built-in Prometheus monitoring.
  6. Built-in OpenTelemetry tracing.
  7. Supports HTTP1.1/HTTP2/H2C/Webosocket/GRPC protocols.
  8. Multiple built-in balancer algorithm (round_robin, random, weighted, chash) and allow to build your own

Comparative Analysis

BifrostNginx
SDK for building your own gateway
Write your middlewares in native Go (not TinyGo)
Rich built-in middlewares
Millisecond-level graceful reloads for dynamic configuration updates
Blue-green deployment for services
High connection pool reuse rate
Easy integration with existing Go programs
Built-in Prometheus monitoring
Built-in OpenTelemetry tracing
Native k8s service discovery
Built-in web application firewall and support OWASP Core Rule Set
HTTP2 upstream support
Multiple configuration providers
Standardized and User-Friendly Configuration
Multiple built-in balancer algorithm and allow to build your own
High concurrency and low latency
GRPC Load Balancer
Background task support

Overview

flow

servers: Server configuration, supports middlewares, controlling which port to expose
routes: Route configuration, controls request path forwarding rules to specific services
services: Service configuration, controls service details such as protocol information
upstreams: Upstream configuration, manages load balancing rules for backend hosts

Get Started

Set up a high-performance API gateway in 5 minutes

Documents

  1. Configuration
  2. Providers
  3. Routes
  4. Middlewares
  5. Directive

Credit

  1. CloudWeGo

About

A low-latency and high-throughput API gateway library in Go

Topics

Resources

Stars

10 stars

Watchers

1 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

Bifrost GoDocBuildGoReportSecurityCoverage StatusCodeWiki

A low-latency and high-throughput API gateway library in Go

Reasons to use Bifrost

  1. Low latency and high throughput.
  2. Allows writing middlewares in native Go.
  3. Easy to integrate with existing Go services.
  4. Easy migration from Nginx. Leverage your Nginx experience.
  5. Built as an SDK/library instead of an artifact.

Feature highlights

  1. Support for writing middleware in Go.
  2. Low latency and high throughput (powered by the Hertz framework).
  3. Millisecond-level graceful reload for route updates without interrupting requests.
  4. Get gateway configurations from local files or configuration centers.
  5. Built-in Prometheus monitoring.
  6. Built-in OpenTelemetry tracing.
  7. Supports HTTP1.1/HTTP2/H2C/Webosocket/GRPC protocols.
  8. Multiple built-in balancer algorithm (round_robin, random, weighted, chash) and allow to build your own

Comparative Analysis

BifrostNginx
SDK for building your own gateway
Write your middlewares in native Go (not TinyGo)
Rich built-in middlewares
Millisecond-level graceful reloads for dynamic configuration updates
Blue-green deployment for services
High connection pool reuse rate
Easy integration with existing Go programs
Built-in Prometheus monitoring
Built-in OpenTelemetry tracing
Native k8s service discovery
Built-in web application firewall and support OWASP Core Rule Set
HTTP2 upstream support
Multiple configuration providers
Standardized and User-Friendly Configuration
Multiple built-in balancer algorithm and allow to build your own
High concurrency and low latency
GRPC Load Balancer
Background task support

Overview

flow

servers: Server configuration, supports middlewares, controlling which port to expose
routes: Route configuration, controls request path forwarding rules to specific services
services: Service configuration, controls service details such as protocol information
upstreams: Upstream configuration, manages load balancing rules for backend hosts

Get Started

Set up a high-performance API gateway in 5 minutes

Documents

  1. Configuration
  2. Providers
  3. Routes
  4. Middlewares
  5. Directive

Credit

  1. CloudWeGo

About

A low-latency and high-throughput API gateway library in Go

Topics

Resources

Stars

10 stars

Watchers

1 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

Bifrost GoDocBuildGoReportSecurityCoverage StatusCodeWiki

A low-latency and high-throughput API gateway library in Go

Reasons to use Bifrost

  1. Low latency and high throughput.
  2. Allows writing middlewares in native Go.
  3. Easy to integrate with existing Go services.
  4. Easy migration from Nginx. Leverage your Nginx experience.
  5. Built as an SDK/library instead of an artifact.

Feature highlights

  1. Support for writing middleware in Go.
  2. Low latency and high throughput (powered by the Hertz framework).
  3. Millisecond-level graceful reload for route updates without interrupting requests.
  4. Get gateway configurations from local files or configuration centers.
  5. Built-in Prometheus monitoring.
  6. Built-in OpenTelemetry tracing.
  7. Supports HTTP1.1/HTTP2/H2C/Webosocket/GRPC protocols.
  8. Multiple built-in balancer algorithm (round_robin, random, weighted, chash) and allow to build your own

Comparative Analysis

BifrostNginx
SDK for building your own gateway
Write your middlewares in native Go (not TinyGo)
Rich built-in middlewares
Millisecond-level graceful reloads for dynamic configuration updates
Blue-green deployment for services
High connection pool reuse rate
Easy integration with existing Go programs
Built-in Prometheus monitoring
Built-in OpenTelemetry tracing
Native k8s service discovery
Built-in web application firewall and support OWASP Core Rule Set
HTTP2 upstream support
Multiple configuration providers
Standardized and User-Friendly Configuration
Multiple built-in balancer algorithm and allow to build your own
High concurrency and low latency
GRPC Load Balancer
Background task support

Overview

flow

servers: Server configuration, supports middlewares, controlling which port to expose
routes: Route configuration, controls request path forwarding rules to specific services
services: Service configuration, controls service details such as protocol information
upstreams: Upstream configuration, manages load balancing rules for backend hosts

Get Started

Set up a high-performance API gateway in 5 minutes

Documents

  1. Configuration
  2. Providers
  3. Routes
  4. Middlewares
  5. Directive

Credit

  1. CloudWeGo

About

A low-latency and high-throughput API gateway library in Go

Topics

Resources

Stars

10 stars

Watchers

1 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

Bifrost GoDocBuildGoReportSecurityCoverage StatusCodeWiki

A low-latency and high-throughput API gateway library in Go

Reasons to use Bifrost

  1. Low latency and high throughput.
  2. Allows writing middlewares in native Go.
  3. Easy to integrate with existing Go services.
  4. Easy migration from Nginx. Leverage your Nginx experience.
  5. Built as an SDK/library instead of an artifact.

Feature highlights

  1. Support for writing middleware in Go.
  2. Low latency and high throughput (powered by the Hertz framework).
  3. Millisecond-level graceful reload for route updates without interrupting requests.
  4. Get gateway configurations from local files or configuration centers.
  5. Built-in Prometheus monitoring.
  6. Built-in OpenTelemetry tracing.
  7. Supports HTTP1.1/HTTP2/H2C/Webosocket/GRPC protocols.
  8. Multiple built-in balancer algorithm (round_robin, random, weighted, chash) and allow to build your own

Comparative Analysis

BifrostNginx
SDK for building your own gateway
Write your middlewares in native Go (not TinyGo)
Rich built-in middlewares
Millisecond-level graceful reloads for dynamic configuration updates
Blue-green deployment for services
High connection pool reuse rate
Easy integration with existing Go programs
Built-in Prometheus monitoring
Built-in OpenTelemetry tracing
Native k8s service discovery
Built-in web application firewall and support OWASP Core Rule Set
HTTP2 upstream support
Multiple configuration providers
Standardized and User-Friendly Configuration
Multiple built-in balancer algorithm and allow to build your own
High concurrency and low latency
GRPC Load Balancer
Background task support

Overview

flow

servers: Server configuration, supports middlewares, controlling which port to expose
routes: Route configuration, controls request path forwarding rules to specific services
services: Service configuration, controls service details such as protocol information
upstreams: Upstream configuration, manages load balancing rules for backend hosts

Get Started

Set up a high-performance API gateway in 5 minutes

Documents

  1. Configuration
  2. Providers
  3. Routes
  4. Middlewares
  5. Directive

Credit

  1. CloudWeGo

About

A low-latency and high-throughput API gateway library in Go

Topics

Resources

Stars

10 stars

Watchers

1 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

Bifrost GoDocBuildGoReportSecurityCoverage StatusCodeWiki

A low-latency and high-throughput API gateway library in Go

Reasons to use Bifrost

  1. Low latency and high throughput.
  2. Allows writing middlewares in native Go.
  3. Easy to integrate with existing Go services.
  4. Easy migration from Nginx. Leverage your Nginx experience.
  5. Built as an SDK/library instead of an artifact.

Feature highlights

  1. Support for writing middleware in Go.
  2. Low latency and high throughput (powered by the Hertz framework).
  3. Millisecond-level graceful reload for route updates without interrupting requests.
  4. Get gateway configurations from local files or configuration centers.
  5. Built-in Prometheus monitoring.
  6. Built-in OpenTelemetry tracing.
  7. Supports HTTP1.1/HTTP2/H2C/Webosocket/GRPC protocols.
  8. Multiple built-in balancer algorithm (round_robin, random, weighted, chash) and allow to build your own

Comparative Analysis

BifrostNginx
SDK for building your own gateway
Write your middlewares in native Go (not TinyGo)
Rich built-in middlewares
Millisecond-level graceful reloads for dynamic configuration updates
Blue-green deployment for services
High connection pool reuse rate
Easy integration with existing Go programs
Built-in Prometheus monitoring
Built-in OpenTelemetry tracing
Native k8s service discovery
Built-in web application firewall and support OWASP Core Rule Set
HTTP2 upstream support
Multiple configuration providers
Standardized and User-Friendly Configuration
Multiple built-in balancer algorithm and allow to build your own
High concurrency and low latency
GRPC Load Balancer
Background task support

Overview

flow

servers: Server configuration, supports middlewares, controlling which port to expose
routes: Route configuration, controls request path forwarding rules to specific services
services: Service configuration, controls service details such as protocol information
upstreams: Upstream configuration, manages load balancing rules for backend hosts

Get Started

Set up a high-performance API gateway in 5 minutes

Documents

  1. Configuration
  2. Providers
  3. Routes
  4. Middlewares
  5. Directive

Credit

  1. CloudWeGo

About

A low-latency and high-throughput API gateway library in Go

Topics

Resources

Stars

10 stars

Watchers

1 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

Bifrost GoDocBuildGoReportSecurityCoverage StatusCodeWiki

A low-latency and high-throughput API gateway library in Go

Reasons to use Bifrost

  1. Low latency and high throughput.
  2. Allows writing middlewares in native Go.
  3. Easy to integrate with existing Go services.
  4. Easy migration from Nginx. Leverage your Nginx experience.
  5. Built as an SDK/library instead of an artifact.

Feature highlights

  1. Support for writing middleware in Go.
  2. Low latency and high throughput (powered by the Hertz framework).
  3. Millisecond-level graceful reload for route updates without interrupting requests.
  4. Get gateway configurations from local files or configuration centers.
  5. Built-in Prometheus monitoring.
  6. Built-in OpenTelemetry tracing.
  7. Supports HTTP1.1/HTTP2/H2C/Webosocket/GRPC protocols.
  8. Multiple built-in balancer algorithm (round_robin, random, weighted, chash) and allow to build your own

Comparative Analysis

BifrostNginx
SDK for building your own gateway
Write your middlewares in native Go (not TinyGo)
Rich built-in middlewares
Millisecond-level graceful reloads for dynamic configuration updates
Blue-green deployment for services
High connection pool reuse rate
Easy integration with existing Go programs
Built-in Prometheus monitoring
Built-in OpenTelemetry tracing
Native k8s service discovery
Built-in web application firewall and support OWASP Core Rule Set
HTTP2 upstream support
Multiple configuration providers
Standardized and User-Friendly Configuration
Multiple built-in balancer algorithm and allow to build your own
High concurrency and low latency
GRPC Load Balancer
Background task support

Overview

flow

servers: Server configuration, supports middlewares, controlling which port to expose
routes: Route configuration, controls request path forwarding rules to specific services
services: Service configuration, controls service details such as protocol information
upstreams: Upstream configuration, manages load balancing rules for backend hosts

Get Started

Set up a high-performance API gateway in 5 minutes

Documents

  1. Configuration
  2. Providers
  3. Routes
  4. Middlewares
  5. Directive

Credit

  1. CloudWeGo

About

A low-latency and high-throughput API gateway library in Go

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages