Das RPC-Framework gRPC Kotlin erreicht Version 1.0

Das Major Release der gRPC-Implementierung für Kotlin bietet Unterstützung für Plattformen ohne JVM und vereinfachtes Deployment containerisierter Apps.

In Pocket speichern vorlesen Druckansicht 22 Kommentare lesen

(Bild: Lightspring/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Matthias Parbel

Um speziell für die Android- und Cloud-Entwicklung die Vorteile der Java-Alternative Kotlin wie Ausdrucksstärke, Sicherheit und Support für das Schreiben von asynchronem Code mit Coroutinen für seine interne gRPC-Infrastruktur besser nutzen zu können, hat Google die Implementierung gRPC Kotlin gebaut – und im April 2020 als Open Source freigegeben. Nun hat das RPC-Framework die erste Hauptversion erreicht und geht mit überarbeiteter Dokumentation, zahlreichen Bugfixes und erweiterter Plattformunterstützung an den Start.

Version 1.0 von gRPC Kotlin profitiert beim Erstellen von Datenübertragungsobjekten und den sie umgebenden Diensten nicht nur von Kotlins Coroutinen für reaktiven Input/Output, sondern nutzt auch die Flow API, um Streams mit reaktiver Ein-/Ausgabe zu verarbeiten. Um insbesondere den erzeugten Code für Android-Clients zu optimieren, greift gRPC Kotlin auf den Lite-Modus von gRPC Java zurück: Er versetzt Protobuf-Compiler in die Lage, kleinere, leistungsfähigere Klassen zu erzeugen. Das Artefakt grpc-kotlin-stub-lite hängt dabei vom zugehörigen grpc-protobuf-lite ab. Der erzeugte Kotlin-Stub-Client lässt sich genauso wie auf der JVM verwenden.

Der Lite-Modus erlaubt darüber hinaus den Einsatz von GraalVM Native Image, sodass Entwicklerinnen und Entwickler Anwendungen erzeugen können, die ohne JVM aus Ahead-of-time-(AOT)-kompilierten nativen Images heraus laufen. So lassen sich kleinere Anwendungen bauen, die weniger Speicher benötigen und die sich daher auch für Umgebungen mit begrenzten Ressourcen eignen. Ein Beispielprojekt verdeutlicht, wie sich eine Native-Client-Anwendung mit einer nur 14 MByte großen Executable erzeugen lässt, die laut Google in Sekundenbruchteilen startet, Kontakt zum Server aufnimmt, eine Anfrage stellt und die Antwort verarbeitet.

Was ist gRPC?

Das von Google entwickelte gRPC (google/general-purpose Remote Procedure Call) ist ein Open-Source-Framework zum Aufrufen von Funktionen in verteilten Computersystemen und dient Entwicklerinnen und Entwicklern vor allem für die Kommunikation zwischen Microservices. Es nutzt das HTTP/2-Protokoll für bidirektionales Streaming und Protocol Buffers als Interface Definition Language (IDL) beziehungsweise als zugrundeliegendes Nachrichtenaustauschformat.

gRPC zielt primär auf Web- und Android-Anwendungen ab, arbeitet aber grundsätzlich plattformübergreifend und steht für eine Reihe von Programmiersprachen zur Verfügung – darunter Java, C++, Go, Python und Ruby. Das von Google 2015 als Open Source freigegebene gRPC bewährt sich seither als "incubating project" bei der Cloud Native Computing Foundation (CNCF).

Google sieht die Vorzüge von gRPC Kotlin aber nicht nur Client-seitig, sondern setzt das RPC-Framework auch für Backend-Dienste ein. Diese Anwendungen sollen sich mit gRPC Kotlin besonders einfach verpacken und containerisiert überall dort bereitstellen lassen, wo sich Docker Container oder JVM-Apps ausführen lassen – beispielsweise in Kubernetes-Clustern. Google zielt dabei aber auch auf den eigenen, vor einem Jahr offiziell gestarteten Serverless-Computing-Dienst namens Cloud Run ab, der eine vollständig verwaltete Infrastruktur für den Anwendungsbetrieb verspricht.

Weitergehende Informationen zu Version 1.0 von gRPC Kotlin finden sich im Blogbeitrag zur Veröffentlichung des Major Release sowie auf den GitHub-Seiten des Projekts.

(map)