¿Alguien sabe de un proyecto para implementar Google Protocol Buffers en Delphi?Delphi Protocol Buffers?
Respuesta
Este proyecto contiene la implementación de Protocolo Buffers para Delphi. Desde el proyecto se implementó la funcionalidad limitada necesaria para un proyecto específico. En ese momento, no veo sentido transferir todo el código del proyecto. http://sourceforge.net/projects/protobuf-delphi/
y no se ha vuelto a tocar desde 2011. Vea a continuación para la respuesta de Fundamentos que parece mantenerse activamente. –
La versión 1.1 se publicó en abril de 2013. –
Puede ser mejor que encuentre/cree un puente C++/Delphi, en lugar de volver a implementar Protocolos de protocolo. La base de código es bastante grande.
Parece que los búferes de protocolo son más ricos en características, ya que permiten elementos opcionales, por lo que es más parecido a un protocolo XML + XSD/WSDL/SOAP que a un formato de serialización – mjn
aquí:
Fundamentos Protocol Buffers 4.00.01 (10 Feb 2013)
Google Protocol Buffers
Parece que se mantiene activamente. +1 para esto mientras que la respuesta aceptada parece estar congelada y nunca se ha tocado desde 2011. –
He encontrado another one en el GitHub. (desarrollado de Feb.2014 a Jul.2016, a partir de junio de 2017)
Parece tener preliminary proto3 support.
No lo probé todavía, pero puede ser el mejor a partir de hoy.
https://github.com/stijnsanders/DelphiProtocolBuffer
EDIT: He probado esto, pero parece estar escrita en la antigua Delphi y no unicode listo.
pude compilar el generador (utilizando 10 Seattle), pero exe compilado no podía generar el archivo pas :-(
Edit2:
El generador de código funciona sólo la sustitución de TStream a TStreamReader/escritor . confirmé generador puede convertir reciente address book sample.
diff --git a/ProtBufParse.pas b/ProtBufParse.pas
index f29d7c7..cdd734d 100644
--- a/ProtBufParse.pas
+++ b/ProtBufParse.pas
@@ -236,16 +236,13 @@ var
procedure LoadCode;
var
- f:TFileStream;
+ sr:TStreamReader;
begin
- f:=TFileStream.Create(FilePath,fmOpenRead or fmShareDenyWrite);
+ sr:=TStreamReader.Create(FilePath, True{DetectBOM});
try
- //TODO: UTF-8? UTF-16?
- CodeL:=f.Size;
- SetLength(Code,CodeL);
- if f.Read(Code[1],CodeL)<>CodeL then RaiseLastOSError;
+ Code := sr.ReadToEnd;
finally
- f.Free;
+ sr.Free;
end;
end;
diff --git a/dpbp.dpr b/dpbp.dpr
index 4049480..b6dab90 100644
--- a/dpbp.dpr
+++ b/dpbp.dpr
@@ -22,7 +22,7 @@ var
p:TProtocolBufferParser;
s,t,InputFN,OutputFN,RelPath:string;
i,j,l,l1:integer;
- f:TFileStream;
+ sw:TStreamWriter;
fv:TProtocolBufferParserValue;
ff:TProtocolBufferParserFlag;
Flags:TProtocolBufferParserFlags;
@@ -134,11 +134,12 @@ begin
writeln('Writing '+OutputFN);
s:=p.GenerateUnit(Flags);
- f:=TFileStream.Create(OutputFN,fmCreate);
+
+ sw:=TStreamWriter.Create(OutputFN,False,TEncoding.UTF8);
try
- f.Write(s[1],Length(s));
+ sw.Write(s);
finally
- f.Free;
+ sw.Free;
end;
finally
- 1. ¿Alguna experiencia con Protocol Buffers?
- 2. Protocol Buffers de Java RPC Pila
- 3. Protocol Buffers y modelos de datos internos
- 4. Usando Google 'Protocol Buffers' en Arduino
- 5. ¿Las mayores diferencias de Thrift versus Protocol Buffers?
- 6. Comparación de rendimiento de Thrift, Protocol Buffers, JSON, EJB, otro?
- 7. ¿Cómo codificaría un Map <String, Object> utilizando Protocol Buffers?
- 8. ¿Existe una implementación de la calidad de producción de los Buffers de Google Protocol en .NET
- 9. Protocol Buffers: ¿Debo utilizar Int64 o fixed64 para representar un valor .NET DateTime?
- 10. Integrar archivos de Google Protocol Buffers .proto a Visual C++ 2010
- 11. Scala Case Classes vs. Protocol Buffers with Akka en la red
- 12. Buffers de protocolo de Google comparar
- 13. Logitech Unifying Receiver Protocol?
- 14. gson vs protocol buffer
- 15. .NET Messaging & STOMP Protocol
- 16. Android WebView Protocol Handler
- 17. python multiprocessing pickle protocol
- 18. Boost.Asio con buffers de protocolo de Google
- 19. C++ cout y cin buffers, y buffers en general
- 20. "Buffers no se han creado" ... al crear buffers
- 21. Objective-C double Delegate protocol
- 22. OpenGL Uniform buffers?
- 23. Android y Protocolo Buffers
- 24. Buffers de protocolo frente a JSON o BSON
- 25. ¿Hay alguna base de datos que admita buffers de protocolo?
- 26. Buffers de protocolo de registro
- 27. Buffers por tabulación en vim
- 28. Buffers de limpieza en C
- 29. Buffers de protocolo de Google compilación cruzada
- 30. compresión en java nio buffers directos
no se ve tan difícil tener un ir en él mismo (a sí mismo?), es sólo el tiempo (el tiempo !!) me gustaría tener una unas pocas horas más por día. –
¡Amén! Esperaba ayudar y no comenzar de cero. –
Sitio Protocol Buffers: http://code.google.com/p/protobuf/ protobuf-net es una implementación de .NET: http://code.google.com/p/protobuf-net/ Basado en arriba debe ser más trabajo de lo que pensé primero. Me gustaría una versión win32 o no .net en Delphi. –