Streamingportal bietet eigenes Framework

Twirp ist die Alternative zu gRPC von Twitch

Marcel Richters

© Shutterstock.com/VLADGRIN

Twitch hat ein eigenes Framework für RPCs mit dem Namen Twirp veröffentlicht. Das Framework ist bisher nur für die Programmiersprache Go optimiert, aber das Streamingportal hofft für die Erweiterung auf die Open-Source-Community. Später sollen auch weitere Sprachen nativ unterstützt werden.

Wer so einen speziellen Service anbietet wie Twitch, der braucht auch ein spezielles RPC-Framework für die Kommunikation zwischen seinen Services. Daher haben die Entwickler aus Sacramento kürzlich ihr eigenes strukturiertes Framework namens Twirp veröffentlicht. Bei Twitch selber läuft die hauseigene Produktion schon eine Weile, jetzt ist es unter der Apache-2.0-Lizenz über GitHub auch Open Source für die Allgemeinheit zugänglich.

Der Fokus von Twirp liegt – im Gegensatz zu den wichtigsten Mitbewerbern gRPC und REST APIs – auf Einfachheit. Damit soll die Anfälligkeit für Bugs verringert und die Effizienz erhöht werden. Während gRPC mindestens HTTP/2 braucht, läuft Twirp auch unter HTTP 1.1. Zwar geht das laut Entwicklern auf Kosten der Features, aber das sollen Stabilität und Modularität ausgleichen. Darüber hinaus bietet das Framework die Möglichkeit, verschiedene Services in unterschiedlicher Geschwindigkeit zu upgraden. Im gRPC-Framework müssen stets sämtliche Services mit der gleichen Version arbeiten.

Ein Beispiel macht deutlich, wie einfach Twirp funktioniert. Anfragen lassen sich über die Commandline mit cURL erstellen. Dafür benötigt es den Content-Type-Header, Payload und die entsprechende URL:

# This is a valid Twirp request:
curl \
 -header 'Content-Type:application/json' \
 -data '{"user": "spencer", "email": "spencer@twitch.tv"}' \
 http://localhost:9090/twirp/twitch.example.EmailBoss/UpdateEmail

Besonders für Service-orientierte Architekturen, die in Go geschrieben sind, ist Twitchs Framework geeignet. Andere Sprachen werden zwar bereits unterstützt, da das Kerndesign des Frameworks sprachagnostisch ist, sind im Gegensatz zur Go-Implementierung aber noch nicht produktionsfertig. Die Implementierung anderer Sprachen ist in Planung, dabei setzt Twitch auch auf die Unterstützung der GitHub-Community.

Wer Interesse an der Mitarbeit hat: Hier geht es zum Projekt auf GitHub. Weitere Informationen zum neuen Framework gibt es zudem auf dem Twitch-Blog.

Verwandte Themen:

Geschrieben von
Marcel Richters
Marcel Richters
Marcel hat Soziologie an der Goethe-Universität in Frankfurt am Main studiert und danach als E-Commerce-Manager gearbeitet. Seit Februar 2018 unterstützt er das Team von JAXenter als Redakteur. Daneben arbeitet er als freier Journalist in der Mainmetropole.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: