Mastodon API
– Wieder durchgefallen auch in Runde 14 des Prototype Funds. Daher nur kurz fürs Logbuch festgehalten.
Projekttitel
Mastodon API
Beschreibe dein Projekt kurz.
Als dezentrales und werbefreies Netzwerk wird Mastodon momentan als Twitter-Nachfolger gehandelt. Mehrere Programmbibliotheken existieren, um den Zugriff auf die offene Programmierschnittstelle (API) von Mastodon-Instanzen zu erleichtern. Doch ausgerechnet der Mastodon-Client für die Sprache Ruby, in der Mastodon selbst programmiert ist, wird nicht mehr gepflegt. Die letzte Implementierung ist vier Jahre alt, mittlerweile unvollständig und inkompatibel mit aktuellen Ruby-Versionen. Ich würde das verkümmerte Open-Source-Projekt gerne forken, aktualisieren und wieder vorantreiben.
Welche gesellschaftliche Herausforderung willst du mit dem Projekt angehen?
Für Twitters Wachstum war die API-Ökonomie einst essenziell. Viele nützliche und unterhaltsame Bots (von Warn-Apps bis Katzen-Memes) sind einmal aus ersten Programmierenlernen-Projekten hervorgegangen. Wie offen sich Mastodon als neue Plattform in bestehende Systeme integrieren lässt, entscheidet deshalb mit. Zur Einordnung: Laut rubygems.org hat die Twitter-Bibliothek über 20 Millionen Downloads; das Mastodon-Paket zum Vergleich hat zurzeit 16 Tausend.
Nachdem Twitter seine API-Nutzung mit neuem Preismodell jetzt gerade für Hobbyisten, kleine Projekte und Forschung unbezahlbar gemacht hat, werden noch mehr Menschen ihre Projekte zu Mastodon umziehen. Dafür benötigen wir allerdings auf Zeit noch bessere Werkzeuge und Infrastruktur, und das in jeder erdenklichen Programmiersprache der Wahl. Ruby ist eine der am besten geeigneten Sprachen, um solche Aufgaben schnell und einfach zu automatisieren. Daher ist es so wichtig, dass die Ruby-Implementierung auf den aktuellen Stand gebracht wird. Speziell an Programmieranfänger gerichtet soll zudem detaillierte Dokumentation erstellt werden, wie APIs und Bibliothek verwendet werden und wie die Bibliothek selbst um eigene Funktionen erweitert werden kann.
Wie willst du dein Projekt technisch umsetzen?
Die verwendete Programmiersprache ist naturgemäß Ruby. Zu erstellende Dokumentation und Tutorials sind wohl am besten aufgehoben als Wiki-Seiten auf GitHub selbst.
Welche ähnlichen Ansätze gibt es schon und was wird dein Projekt anders bzw. besser machen?
Der veraltete Code ist unter https://github.com/mastodon/mastodon-api gehostet. Ehrlich gesagt ist es mir etwas rätselhaft, wie man ein Projekt von solcher Wichtigkeit so stark zur Seite fallen lassen kann. Vor allem, wenn die eigene Plattform so abhebt wie seit letztem Herbst. Nun ja, wir brauchen für dieses Projekt dringend einen funktionierenden Open-Source-Prozess. Darum geht es mir!
Wer ist die Zielgruppe und wie soll dein Projekt sie erreichen?
Das Projekt ist von Entwicklern für Entwickler. Doch wie bereits erwähnt: Ein eigener kleiner Bot, der relevante Posts aus dem Mastodon-Fediverse herausfischt, die eigene Timeline neu sortiert oder automatisch befüllt, ist ein hervorragendes erstes Programmierexperiment für angehende Coder. Deshalb soll sich die Dokumentation vor allem an Programmierneulinge richten.
Über Suchmaschinen und bei GitHub bzw. rubygems.org unter dem Suchbegriff »mastodon gem« fündig zu werden, sollte völlig ausreichen, um Sichtbarkeit für das Projekt zu schaffen. Zudem gibt es eine offizielle »Libraries and implementations«-Liste (unter docs.joinmastodon.org), wo man sich eintragen kann.
Erfahrung, Hintergrund, Motivation, Perspektive: Was sollen wir über dich (bzw. euch) wissen und bei der Auswahl berücksichtigen?
Für mich wäre dieses Projekt nicht ohne riesigen Eigennutz. Für mein Hauptprojekt greife ich seit 2008 auf Twitters API zurück. Das fällt jetzt komplett aus, da diese API nun mit Gewalt monetarisiert wird. Wie viele andere kleinere Datenauswerter und -visualisierer orientiere ich mich daher zu Mastodon um als neue Datenquelle. Ein Erfolg von Mastodon wäre auch ein Schritt in die richtige Richtung: weg von Big Tech, hin zum IndieWeb.
Skizziere kurz die wichtigsten Meilensteine, die im Förderzeitraum umgesetzt werden sollen.
- Die vorhandene Codebasis soll geforkt werden (es sei denn, etwas spricht nach weiterer Analyse dafür, auf der grünen Wiese neu zu beginnen).
- Danach werden alle unmittelbaren Probleme behoben, damit das Paket schnellstmöglich wieder einsatzfähig wird.
- Anschließend sollte der Umfang um die noch fehlenden API-Endpunkte ergänzt werden. Eine ältere Aufstellung davon ist bereits als GitHub-Issue hinterlegt.
- Die gegenwärtige Suite automatisierter Tests ist eigentlich nicht ausreichend und soll umfassend verbessert werden.
- Ferner möchte ich die Bibliothek gerne mit Implementierungen in anderen Sprachen homogenisieren.
- Parallel wird umfangreiche Dokumentation aller API-Methoden und -Datentypen mit Tutorials speziell für Einsteiger im Wiki erstellt.