PackageTrack
Sign in Get early access

github.com/gatewayd-io/gatewayd

v0.11.1 #2759 most downloaded on Go modules gatewayd-io/gatewayd

What this package is like to depend on

Last release 6 months ago

22 Feb 2026

Release timing varies

gaps range from 2 weeks to 6 months

Rarely documented

notes for 10 of 91 stable releases

Nothing withdrawn

no release was ever pulled

4 years old

121 releases · first in 2022

2 releases in the last 12 months

see the full history below

Release timeline

121 releases · Oct 2022 to Feb 2026
2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 121
  1. v0.11.1 22 Feb 2026
    Release notes

    Patch release fixing a connection pool exhaustion bug that affects deployments using plugins with the Terminate action (e.g. gatewayd-plugin-cache).

    Bug Fix

    Fix connection pool exhaustion in PassThroughToClient (#731)

    When a plugin returned the Terminate action (e.g. cache hit), the client-to-server goroutine would set a backend read deadline and exit. The server-to-client goroutine then called receiveTrafficFromServer, which returned received == 0 with a deadline-exceeded error. However, PassThroughToClient silently discarded the error when received == 0 and returned nil, causing the goroutine to spin in an infinite loop:

    Received data from database function=proxy.passthrough length=0
    

    Because the goroutine never exited, OnTraffic never returned, Disconnect never ran, and the backend connection was permanently leaked. Under sustained traffic this exhausted the entire connection pool.

    Fix: Propagate the error when received == 0 && err != nil so the goroutine exits cleanly and the connection is properly recycled.

    Other Changes

    • Upgrade to Go 1.25 and Alpine 3.23
    • Update direct dependencies
    • Add extensive CI plugin tests for cache, auth, js, and sql-ids-ips plugins (#731)

    Companion Release

    • gatewayd-plugin-cache v0.5.1 — fixes a data race in OnTrafficFromServer where the v1.Struct response pointer was shared between gRPC serialization and the UpdateCache goroutine, causing corrupted responses

    Full Changelog: v0.11.0...v0.11.1

    Open source →
    Release notes

    v0.11.1 Latest

    Latest

    Compare

    Choose a tag to compare

    Open source →
  2. v0.11.0 16 Feb 2026
    Release notes

    After more than 6 months since v0.10.3, we're excited to ship GatewayD v0.11.0, a significant releases in the project's history. The highlight is pre-authenticated backend pool connections, a foundational capability that transforms how GatewayD manages PostgreSQL connections and unlocks critical use cases like identity brokering via the auth plugin.

    Highlights

    Pre-Authenticate Backend Pool Connections (#721)

    This is the most important change in v0.11.0. Previously, backend connections in the pool were raw TCP sockets. They had no PostgreSQL session state until a client connected and the startup handshake was forwarded through. With pre-auth, GatewayD now performs the full PostgreSQL startup handshake (including authentication) immediately after establishing each backend TCP connection, so pool connections are ready for queries before any client arrives.

    Why pre-auth matters:

    • Enables the auth plugin's identity broker model. The auth plugin can now authenticate frontend clients independently (via custom credentials and soon federated identity providers) and map them onto pre-authenticated backend connections. Without pre-auth, the auth plugin had no way to decouple frontend and backend authentication.
    • DISCARD ALL-based connection recycling. When a client disconnects, GatewayD now sends DISCARD ALL to reset the backend session state instead of tearing down and re-establishing the TCP connection. This is significantly faster and reduces load on the PostgreSQL server.
    • Full authentication method support. The startup handshake supports trust, cleartext, MD5, and SCRAM-SHA-256 authentication, covering all common PostgreSQL configurations.

    Configure it via the new startupParams block in the client config:

    clients:
      default:
        writes:
          startupParams:
            user: postgres
            database: postgres
            password: postgres

    Improved Connection Lifecycle & Shutdown

    The traffic handling model in OnTraffic has been redesigned. Instead of using channels to coordinate the client-to-server and server-to-client goroutines, both goroutines now participate in a sync.WaitGroup. OnTraffic blocks until both goroutines have fully exited, guaranteeing the backend connection is idle before attempting session reset or recycling. This eliminates a class of race conditions where DISCARD ALL could collide with a still-active reader.

    Additionally, the shutdown sequence has been improved: the server status is now set to "stopped" before proxies are shut down, so OnClose hooks can detect the shutdown-in-progress state and avoid spurious error logs. Expected shutdown errors (e.g. ErrClientNotFound during cleanup) are now logged at DEBUG level instead of ERROR.

    Unified Raft Log Adapter (#686)

    A new StandardLogWriter captures Go stdlib log output (used internally by raft-boltdb) and redirects it through zerolog with proper formatting and the "component": "raftboltdb" tag. Raft TCP transport output is now discarded instead of writing to stderr. This ensures all log output flows through GatewayD's structured logging pipeline.

    hclog Format String Handling (#689)

    Fixed a bug where hclog.Format values (used by hashicorp/go-plugin) were not rendered correctly in the hclog-to-zerolog adapter. Format strings are now properly interpolated via fmt.Sprintf.

    Other Changes

    • Race condition fix in Client.Send/Receive: The connection is now snapshotted under a mutex to prevent races with concurrent Close() calls.
    • New Proxy methods: ExpireBackendReadDeadline() and ClearBackendDeadline() allow precise control over backend connection deadlines during goroutine teardown.
    • New error codes: ErrCodePgStartupFailed and ErrCodePgResetSessionFailed for pre-auth error handling.
    • Test improvements: Replaced zerolog.Logger{} and zerolog.New(nil) with zerolog.Nop() across all test files for correctness.
    • Makefile: Added test-postgres-up and test-postgres-down targets for running local PostgreSQL containers during development.
    • Renovate: Added Renovate configuration for automated dependency management.
    • Documentation: Fixed markdown formatting across all CLI docs.

    Dependency Updates

    Major dependency bumps include:

    Dependency Old New
    gatewayd-plugin-sdk v0.4.3 v0.4.4
    OpenTelemetry v1.37.0 v1.40.0
    gRPC v1.74.2 v1.79.1
    jackc/pgx v5.7.5 v5.8.0
    redis/go-redis v9.12.0 v9.18.0
    hashicorp/go-plugin v1.6.3 v1.7.0
    sentry-go v0.35.0 v0.42.0
    protobuf v1.36.7 v1.36.11
    testcontainers-go v0.38.0 v0.40.0

    New dependency: xdg-go/scram v1.2.0 for SCRAM-SHA-256 authentication support.

    Full Changelog: v0.10.3...v0.11.0

    Open source →
    Release notes

    v0.11.0

    Compare

    Choose a tag to compare

    Open source →
  3. v0.10.3 07 Aug 2025
    Release notes

    What's Changed

    Full Changelog: v0.10.2...v0.10.3

    Open source →
    Release notes

    v0.10.3

    Compare

    Choose a tag to compare

    Open source →
  4. v0.10.2 18 May 2025
    Release notes

    What's Changed

    Full Changelog: v0.10.1...v0.10.2

    Open source →
    Release notes

    v0.10.2

    Compare

    Choose a tag to compare

    Open source →
  5. v0.10.1 14 Dec 2024
    Release notes

    This release introduces Raft-based state management for GatewayD to ensure efficient and consistent coordination between multiple instances. By leveraging HashiCorp’s Raft implementation, GatewayD now maintains a unified state for parameters like connection pools and load-balancer strategies across all instances in a cluster, ensuring high availability, consistency, scalability, and efficiency.

    Key Features and Objectives:

    1. High Availability: Ensures the system remains operational even if individual instances fail. Raft provides fault tolerance by replicating state across multiple nodes, enabling consistent state retrieval and updates during failover scenarios.

    2. Consistency: Guarantees that all instances in the cluster share the same view of stateful parameters, such as connection pools and load-balancer strategies, maintaining synchronized operations across distributed instances.

    3. Scalability: Simplifies state coordination in clusters, enabling seamless scaling of GatewayD instances without introducing inconsistencies or requiring manual intervention.

    4. Efficiency: Propagates updates to stateful parameters in real-time, ensuring optimal load balancing and resource utilization across instances.

    Implementation Details:

    • Unified State Management: A single Raft cluster handles stateful parameters as key-value pairs, ensuring consistency across nodes without the need for complex databases.
    • Real-time Updates: Changes in one instance are immediately propagated to others, maintaining consistency and optimal load balancing.
    • Fault Tolerance and Recovery: Raft’s persistence via BoltDB ensures reliability, while in-memory runtime state management simplifies operations.

    This update resolves inconsistencies in the previous per-instance state management approach, ensuring scalable and robust operation for GatewayD clusters. A huge thanks to @sinadarbouy for his excellent work on this implementation! 🎉


    This release also includes several critical updates and fixes to enhance security, improve performance, and maintain compatibility:

    Security Updates:

    1. OpenSSL Update: Upgraded to 3.3.2-r1 to address CVE-2024-9143.
    2. Crypto Library Fix: Resolved CVE-2024-45337 by updating golang.org/x/crypto to the latest version.

    Dependency Updates:

    1. GitHub Actions: Updated softprops/action-gh-release to v2 for enhanced functionality and compatibility.
    2. Direct Dependencies: Updated direct dependencies to their latest stable versions.

    Development Improvements:

    1. SDK Update: Updated the SDK to the latest version.
    2. Go Updates: Upgrade Go to the latest version.
    3. Protobuf Changes: Regenerated Protobuf message stubs with HTTP annotations for improved API compatibility.

    Linter Fixes:

    • Addressed all issues reported by linters to ensure cleaner and more maintainable code.

    What's Changed

    Full Changelog: v0.10.0...v0.10.1

    Open source →
    Release notes

    v0.10.1

    Compare

    Choose a tag to compare

    Open source →
  6. v0.10.1-0.20241127092213-cb993b280382 27 Nov 2024 pre-release

    Nothing published for this version

  7. v0.10.1-0.20241111115701-6184a83de260 11 Nov 2024 pre-release

    Nothing published for this version

  8. v0.10.0 09 Nov 2024
    Release notes

    What's Changed

    Full Changelog: v0.9.10...v0.10.0

    Open source →
    Release notes

    v0.10.0

    Compare

    Choose a tag to compare

    Open source →
  9. v0.9.11-0.20241109120212-7f47dca74c26 09 Nov 2024 pre-release

    Nothing published for this version

  10. v0.9.10 12 Oct 2024
    Release notes

    This release marks the culmination of the v0.9.x milestone, packed with significant new features, fixes, and enhancements that have made GatewayD more robust, stable, and scalable. Key highlights include the introduction of the policy engine, aka. the Act system, in v0.9.0, the plugin scaffold feature in v0.9.5, and the load balancing feature in v0.9.7, among many others.

    Over the course of this milestone, we merged 89 squashed commits into the main branch, resolved 30 issues, reviewed numerous PRs and published 11 releases — thanks to the perseverance and contributions of our amazing community. None of this would have been possible without their dedication.

    Looking ahead, there's even more in store, and we invite you to get involved. Whether you're a user or a tester, your participation is crucial. If you're ready to contribute, @mostafa is here to support you every step of the way.

    Full Changelog: v0.9.9...v0.9.10

    Open source →
    Release notes

    v0.9.10

    Compare

    Choose a tag to compare

    Open source →
  11. v0.9.10-0.20241012124159-37fec6114bac 12 Oct 2024 pre-release

    Nothing published for this version

  12. v0.9.10-0.20241011115011-3090c585f07a 11 Oct 2024 pre-release

    Nothing published for this version

  13. v0.9.9 11 Oct 2024
    Release notes

    What's Changed

    Full Changelog: v0.9.8...v0.9.9

    Open source →
    Release notes

    v0.9.9

    Compare

    Choose a tag to compare

    Open source →
  14. v0.9.8 29 Sep 2024
    Release notes

    This release introduces several key enhancements and fixes. A significant improvement is the integration of PostgreSQL test containers for seamless integration testing, replacing hardcoded addresses with dynamic test container addresses. This ensures a consistent test environment across various packages such as api, cmd, and network, and centralizes the setup in a reusable function. Additionally, dependency updates were made, including the latest GatewayD SDK, and the gomoddirectives linter was disabled to streamline development. The plugin configuration was updated to utilize the cache plugin version 0.4.0. A major bug has been fixed that improved handling of PostgreSQL's COPY command, as explained here, plus other bugfixes and improvements.

    This wouldn't be possible without @sinadarbouy's contributions. 🙏

    What's Changed

    Full Changelog: v0.9.7...v0.9.8

    Open source →
    Release notes

    v0.9.8

    Compare

    Choose a tag to compare

    Open source →
  15. v0.9.8-0.20240929182237-9ec6b54128ee 29 Sep 2024 pre-release

    Nothing published for this version

  16. v0.9.7 09 Sep 2024
    Release notes

    This release contain a major change, where each tenant can now connect to multiple databases, contrary to the previous one-tenant-one-database approach, and use server load balancing strategies to distribute the load among these databases. Random, round robin and weighted RR strategies with consistent hashing are supported, thanks to @sinadarbouy and @eabasir for their contributions.

    What's Changed

    New Contributors

    Full Changelog: v0.9.6...v0.9.7

    Open source →
    Release notes

    v0.9.7

    Compare

    Choose a tag to compare

    Open source →
  17. v0.9.7-0.20240909170148-4510a511d2a5 09 Sep 2024 pre-release

    Nothing published for this version

  18. v0.9.7-0.20240819142554-54d0c695656f 19 Aug 2024 pre-release

    Nothing published for this version

  19. v0.9.7-0.20240712114148-18ae198448b9 12 Jul 2024 pre-release

    Nothing published for this version

  20. v0.9.7-0.20240618204218-0119784ed77a 18 Jun 2024 pre-release

    Nothing published for this version

  21. v0.9.6 31 May 2024

    Nothing published for this version

  22. v0.9.6-0.20240526114654-21eb9677698e 26 May 2024 pre-release

    Nothing published for this version

  23. v0.9.6-0.20240520221833-624abee018b8 20 May 2024 pre-release

    Nothing published for this version

  24. v0.9.5 17 May 2024

    Nothing published for this version

  25. v0.9.5-0.20240517112349-29aa55715000 17 May 2024 pre-release

    Nothing published for this version

  26. v0.9.4 10 Apr 2024

    Nothing published for this version

  27. v0.9.4-0.20240318183622-ba2d12ac5fd5 18 Mar 2024 pre-release

    Nothing published for this version

  28. v0.9.3 15 Mar 2024

    Nothing published for this version

  29. v0.9.3-0.20240315000046-e88df0ae2042 15 Mar 2024 pre-release

    Nothing published for this version

  30. v0.9.3-0.20240308113556-4d744d84b435 08 Mar 2024 pre-release

    Nothing published for this version

  31. v0.9.2 07 Mar 2024

    Nothing published for this version

  32. v0.9.2-0.20240306214531-ae6e06725d26 06 Mar 2024 pre-release

    Nothing published for this version

  33. v0.9.1 05 Mar 2024

    Nothing published for this version

  34. v0.9.1-0.20240305172229-f7608c24ba23 05 Mar 2024 pre-release

    Nothing published for this version

  35. v0.9.0 03 Mar 2024

    Nothing published for this version

  36. v0.8.13 18 Feb 2024

    Nothing published for this version

  37. v0.8.13-0.20240218122528-a37fa6333fe1 18 Feb 2024 pre-release

    Nothing published for this version

  38. v0.8.12 13 Feb 2024

    Nothing published for this version

  39. v0.8.12-0.20240213115340-b688bcb99da1 13 Feb 2024 pre-release

    Nothing published for this version

  40. v0.8.12-0.20240206105905-b4a201ff33bd 06 Feb 2024 pre-release

    Nothing published for this version

  41. v0.8.11 29 Jan 2024

    Nothing published for this version

  42. v0.8.11-0.20240129194741-a319750fadd1 29 Jan 2024 pre-release

    Nothing published for this version

  43. v0.8.10 02 Jan 2024

    Nothing published for this version

  44. v0.8.9 27 Dec 2023

    Nothing published for this version

  45. v0.8.8 18 Dec 2023

    Nothing published for this version

  46. v0.8.7 04 Dec 2023

    Nothing published for this version

  47. v0.8.7-0.20231121212719-fea549bd81f9 21 Nov 2023 pre-release

    Nothing published for this version

  48. v0.8.6 19 Nov 2023

    Nothing published for this version

  49. v0.8.5 05 Nov 2023

    Nothing published for this version

  50. v0.8.4 24 Oct 2023

    Nothing published for this version

  51. v0.8.4-0.20231024184058-a7769850c1fd 24 Oct 2023 pre-release

    Nothing published for this version

  52. v0.8.4-0.20231020224735-0cb307a5cec2 20 Oct 2023 pre-release

    Nothing published for this version

  53. v0.8.3 18 Oct 2023

    Nothing published for this version

  54. v0.8.2 28 Sep 2023

    Nothing published for this version

  55. v0.8.2-0.20230927212341-b51cdbf92686 27 Sep 2023 pre-release

    Nothing published for this version

  56. v0.8.1 26 Sep 2023

    Nothing published for this version

  57. v0.8.1-0.20230926213058-601d0030095b 26 Sep 2023 pre-release

    Nothing published for this version

  58. v0.8.1-0.20230924213106-f4e6be26b3d1 24 Sep 2023 pre-release

    Nothing published for this version

  59. v0.8.0 24 Sep 2023

    Nothing published for this version

  60. v0.7.10 21 Sep 2023

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive