Mojo ist eine Sprache, die die Lesbarkeit von Python mit der Geschwindigkeit von C++ kombiniert. Es ist für verschiedene Dinge nützlich, von Low-Level-Code, der der Hardware nahe kommt, über das Back-End-API-Design bis hin zur Welt des Front-Ends und des Webs. Mojo ist leistungsstark genug, um über den gesamten modernen Stack zu skalieren. Die Sprache wurde auch im Hinblick auf KI und maschinelles Lernen entwickelt – daher ist sie besonders nützlich für KI-Entwickler und Datenwissenschaftler. Mojo ist allerdings noch jung. Dem Ökosystem fehlen die Tools für die alltägliche Softwareentwicklung, wie Netzwerke oder grundlegende HTTP-Operationen. Hier kommt ins Spiel. Lightbug 🔥🐝 ist ein einfaches HTTP-Framework, das in reinem Mojo geschrieben wurde und standardmäßig keine externen Abhängigkeiten aufweist. Es soll als Grundlage für komplexere Projekte dienen und ermöglicht es Ihnen, Webdienste wie APIs zu entwickeln, grundlegendes Routing einzurichten oder sogar HTML-Seiten mit Mojo bereitzustellen und gleichzeitig die Funktionen dieser Sprache wie statische Typisierung und hervorragende Leistung zu nutzen . Lightbug 🔥🐝 Um zu beginnen, und und klonen Sie dann das Lightbug-Github-Repo: installieren Sie einfach Mojo Git git clone https://github.com/saviorand/lightbug_http.git Wechseln Sie nach dem Klonen in das Verzeichnis in Ihrer Befehlszeile: cd lightbug_http Führen Sie dann den Server aus (ja, das ist die Mojo-Dateierweiterung! 🔥): mojo lightbug.🔥 Auf der Konsole sollte die folgende Zeile angezeigt werden: 🔥🐝 Lightbug is listening on 0.0.0.0:8080 Ready to accept connections... Jetzt können Sie damit beginnen, Anfragen an Ihren Server zu stellen oder versuchen, oder im Browser zu öffnen – Sie sollten den Einführungsbildschirm sehen. Willkommen im Web im Mojo-Stil! Kommen wir nun zum echten Codieren. localhost:8080 0.0.0.0:8080 Obwohl Lightbug noch jung ist, ist die Kernfunktionalität, die die Leute erwarten, für das moderne Web entwickeln zu können, bereits vorhanden. Beachten Sie, dass Sie einfach als Unterordner in Ihr eigenes Projekt einfügen sollten, da es noch keinen Paketmanager gibt. Dies funktioniert als und ermöglicht Ihnen den Import von Tools wie Web-Primitiven, Servern und mehr von Lightbug. lightbug_http Mojo-Paket Fügen Sie beispielsweise Folgendes oben in Ihre Datei ein, um den Server zu importieren: from lightbug_http.sys.server import SysServer Dadurch wird eine Serverimplementierung in Pure Mojo importiert. Wenn Sie die Python-Implementierung verwenden möchten, importieren Sie stattdessen den . Es wird auf die gleiche Weise funktionieren. PythonServer Um einen HTTP-Dienst zu erstellen, erstellen Sie einfach eine Struktur, die das erfüllt, was bedeutet, dass sie über eine Methode mit der folgenden Signatur verfügt: HTTPService Merkmal func trait HTTPService: fn func(self, req: HTTPRequest) raises -> HTTPResponse: ... Dabei werden die integrierten Grundelemente verwendet, um ein aufzunehmen, jede benutzerdefinierte Logik auszuführen, die Sie in Mojo oder Python schreiben, und ein Objekt mit einigen Daten an den API-Konsumenten zurückzugeben. HTTPRequest HTTPResponse Erstellen wir einen Dienst, der alle an gesendeten Anfragen an die Konsole druckt. Erstellen Sie dazu eine Datei mit dem Namen und fügen Sie Folgendes ein: 0.0.0.0:8080 my_awesome_service.🔥 from lightbug_http import * @value struct Printer(HTTPService): fn func(self, req: HTTPRequest) raises -> HTTPResponse: let body = req.body_raw print(String(body)) return OK(body) fn main() raises: var server = SysServer() let handler = Printer() server.listen_and_serve("0.0.0.0:8080", handler) Führen Sie aus und senden Sie die Anfrage von Ihren bevorzugten API-Clients wie oder an . Sie sollten einige Details zu der auf der Konsole gedruckten Anfrage sehen. mojo my_awesome_service.🔥 Insomnia Bruno 0.0.0.0:8080 Glückwunsch! Du bist jetzt offiziell ein Mojo-Webentwickler 🔥. Im Beispiel initialisieren wir eine Variable namens mit (was bedeutet, dass sie nicht erneut zugewiesen werden kann) und übergeben sie der Übersichtlichkeit halber als zweiten Parameter an . handler let listen_and_serve Das Hinzufügen eines Dekorators ist optional: Wenn Sie ein fortgeschrittener Mojicianer sind, können Sie stattdessen eine hinzufügen. Es wird genauso funktionieren; generiert diese und andere nützliche Methoden einfach automatisch. @value __init__ Konstruktormethode @value struct Printer(HTTPService): fn __init__(inout self): print("Printer initialized!") fn func(self, req: HTTPRequest) raises -> HTTPResponse: let body = req.body_raw print(String(body)) return OK(body) Man könnte sagen, aber das ist nur eine Route! Moderne APIs erfordern viel mehr. Lightbug kann auch einige grundlegende Routingfunktionen übernehmen: @value struct ExampleRouter(HTTPService): fn func(self, req: HTTPRequest) raises -> HTTPResponse: let body = req.body_raw let uri = req.uri() if uri.path() == "/": print("I'm on the index path!") if uri.path() == "/first": print("I'm on /first!") elif uri.path() == "/second": print("I'm on /second!") return OK(body) Fügen Sie dies zu Ihrem hinzu und übergeben Sie es als Handler an den Server: my_awesome_service.🔥 fn main() raises: var server = SysServer() let handler = ExampleRouter() server.listen_and_serve("0.0.0.0:8080", handler) Sie können jetzt Ihren Browser öffnen und zu und gehen, um die Änderungen anzuzeigen. localhost:8080/first localhost:8080/second Diese Funktionalität soll Ihnen eine Grundlage für die Entwicklung Ihrer eigenen Apps, Bibliotheken und Dienste bieten, die HTTP nutzen, und gleichzeitig die Flexibilität und Anpassungsoptionen nutzen, die ein leichtes Framework/Toolkit namens bieten kann. lightbug_http Wir planen, das Routing sowie andere Aufgaben wie das Verfassen und Generieren von APIs aus einer OpenAPI-Spezifikation, das Entwerfen Ihres Datenmodells und das Erstellen von Webanwendungen in Zukunft noch angenehmer zu gestalten, indem wir die Pakete und erstellen. Weitere Informationen finden Sie in unserer . lightbug_api lightbug_web Roadmap Das war's für eine Einführung in ! Ich hoffe, es war nützlich. Lightbug 🔥🐝 Dies ist ein nichtkommerzielles Open-Source-Community-Projekt. Bitte markieren Sie ⭐ unser , treten Sie dem bei und sehen Sie sich an, wie Sie mit Ihrem Code einen Beitrag leisten können, damit wir ihn für die anderen Mojicianer noch besser machen können. Github-Repo Discord Bis zum nächsten Mal!