Cloud-native database gateway and framework for building data-driven applications.
GatewayD is a free and open-source cloud-native database gateway and framework for building data-driven applications. It sits between your database servers and clients and proxies all their communication. It is like API gateways, for databases.
GatewayD is an L4 proxy for SQL databases and clients. You can either write your own plugins or make use of our built-in, community and enterprise plugins.
Using GatewayD, you can see through the queries and the data passing between your database server and clients, and take action. For example, you can cache the result of SQL SELECT queries or detect and prevent SQL injection attacks.
GatewayD is developed by GatewayD Labs and the community.
-
Cloud-native:
GatewayD is built with cloud-native principles in mind. It is containerized, observable and extensible.
-
Connection pooling and proxying:
GatewayD pools connections to database servers and proxies them to clients. It also pools connections to clients and proxies them to database servers.
-
Database-agnostic:
GatewayD is database-agnostic. It supports databases through plugins.
-
Plugin-based & extensible:
GatewayD is plugin-based. You can write your own plugins or use our built-in, community and enterprise plugins.
-
Multi-tenancy:
GatewayD supports multiple databases and clients.
-
Full observability:
GatewayD is fully observable. It supports logging, metrics and tracing.
The plugins are the lifeblood of GatewayD. They are loaded on startup to add tons of functionality, for example:
- Query parsing and processing
- Caching
- Injection detection and prevention
- Schema and data management and transformation
- Many other possibilities
The plugins are usually written in Go and are compiled into stand-alone executables. They are loaded on startup and are ready to be used by the users. In turn, the developers can write their own plugins and use them in their applications, which is made straightforward by using the SDK.
The docs cover all aspects of using GatewayD. Some highlights include:
- Getting Started: install, run an instance of GatewayD and test it in action.
- Configuration: learn how you can configure GatewayD to behave as you like.
- Global Configuration: control GatewayD's behavior.
- Plugins Configuration: control GatewayD's plugin registry and the plugins' behavior.
- Observability: logs, metrics, and traces are GatewayD's first-class citizens.
- Using Plugins: learn how to use plugins.
- Developing Plugins: learn how to develop your own plugins.
- gatewayd-plugin-cache: learn how to use the
gatewayd-plugin-cache
plugin for caching queries and their results. - gatewayd-plugin-js: learn how to use the experimental
gatewayd-plugin-js
plugin for executing JavaScript code in GatewayD.
We welcome contributions from everyone. Just open an issue or send us a pull request.
GatewayD is licensed under the Affero General Public License v3.0.