Andere Sprachen

protoc, der Protocol Buffers Compiler, kann durch Plugins um die Unterstützung neuer Sprachen erweitert werden.

Während die aktuelle Version Compiler und APIs für C++, Java, Go, Ruby, C# und Python enthält, ist der Compiler-Code so konzipiert, dass die Unterstützung für andere Sprachen einfach hinzugefügt werden kann. Es gibt mehrere laufende Projekte zur Hinzufügung neuer Sprachimplementierungen zu Protocol Buffers, darunter C, Haskell, Perl, Rust und mehr.

Eine Liste der uns bekannten Projekte finden Sie auf der Wiki-Seite Drittanbieter-Add-ons.

Compiler-Plugins

protoc, der Protocol Buffers Compiler, kann durch Plugins um die Unterstützung neuer Sprachen erweitert werden. Ein Plugin ist lediglich ein Programm, das von Standard-Eingabe einen CodeGeneratorRequest Protocol Buffer liest und dann einen CodeGeneratorResponse Protocol Buffer auf Standard-Ausgabe schreibt. Diese Nachrichtentypen sind in plugin.proto definiert. Wir empfehlen, alle Drittanbieter-Code-Generatoren als Plugins zu schreiben, da dies allen Generatoren ermöglicht, eine konsistente Schnittstelle bereitzustellen und eine einzige Parser-Implementierung zu teilen.

Plugins können in jeder Programmiersprache geschrieben werden, aber von Google stammende Plugins werden in C++ geschrieben. Wenn Sie Ihr eigenes Plugin schreiben, ist es wahrscheinlich am einfachsten, C++ für das Plugin zu verwenden, um den Beispielen folgen und Dienstprogramme wiederverwenden zu können.

Zusätzlich können Plugins Code in die von anderen Code-Generatoren generierten Dateien einfügen. Sehen Sie sich die Kommentare zu "insertion points" in plugin.proto an, um mehr darüber zu erfahren. Dies könnte beispielsweise dazu verwendet werden, ein Plugin zu schreiben, das RPC-Servicedcode generiert, der für ein bestimmtes RPC-System maßgeschneidert ist. Informationen darüber, welche "insertion points" in den generierten Code jeder Sprache integriert sind, finden Sie in der Dokumentation.