A Delphi implementation of the gRPC protocol with HTTP/2 and WebSocket support for real-time, bidirectional streaming.
DelphiGrpc is a native Delphi implementation of the gRPC protocol, enabling efficient real-time and bidirectional streaming communication between applications. It provides both client and server support, leveraging Protocol Buffers for compact messaging and offering transport over HTTP/2 or WebSockets. The project aims to bring the efficiency and contract-based design of gRPC to the Delphi ecosystem, with pragmatic adaptations like WebSocket support to overcome platform limitations.
Delphi developers building applications that require efficient, real-time communication, such as client-server systems, mobile apps, or services needing bidirectional streaming. It is particularly relevant for developers targeting Windows (with HTTP/2) and Android (with WebSockets), or those needing to interface with existing gRPC services.
Developers choose DelphiGrpc because it provides a native Delphi solution for gRPC, avoiding the need for external proxies or complex workarounds. Its unique selling points include full bidirectional streaming support, the flexibility of WebSocket transport for platforms lacking HTTP/2, and integration with established Delphi libraries like GrijjyFoundation for Protocol Buffers.
DelphiGrpc is a Delphi implementation of the realtime and streaming gRPC protocol (http://grpc.io).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses GrijjyFoundation for Protocol Buffers serialization, enabling efficient messaging without external proxies, as shown in the example interfaces.
Implements all gRPC streaming patterns, including complex asynchronous calls like CountDown and UpdateableCountDown, facilitating real-time communication.
Custom WebSocket wrapper extends gRPC to mobile platforms and browsers, overcoming HTTP/2 limitations with a simple protobuf-based frame format.
Provides complete Delphi interfaces for building both gRPC clients and servers, as demonstrated in the synchronous and asynchronous examples.
Missing key features like timeout handling, compression, metadata, and bandwidth throttling, as admitted in the README's 'Missing' section.
Self-described as 'not production ready yet,' with untested SSL support and lack of stress tests for random connection loss.
Only fully supports Windows (HTTP/2) and Android (WebSocket), requiring external libraries like ngHttp2.dll that add setup complexity.