2012-09-19 15 views
14

Estoy interesado en la opinión sobre las opciones para la serialización de la estructura de datos de Scala. Me gustaría encontrar algo que esté lo suficientemente desarrollado como para permitir (si es posible) la serialización binaria eficiente de los tipos de colección Scala (es decir, no usar la reflexión genérica de Java; no quiero serializar todas las partes de una clase de colección, incluida la interna) datos de contabilidad) pero también me permite ampliar la funcionalidad para mis propios fines/clases: estoy más que feliz de tener que escribir el código de serialización para cada una de nuestras clases, pero preferiría no tener que hacerlo para colecciones de la Scala bibliotecas estándar En C++ obtengo mucha de esta funcionalidad del Boost serialization library.Biblioteca de serialización binaria Scala

He utilizado SBinary en el pasado y hace algo de lo que quiero, pero no está obteniendo mantenimiento activo obvio y no parece (afaik) hacer un seguimiento de los objetos ya serializados (por ejemplo, para DAG o estructuras de datos cíclicos)

¿Hay otras soluciones específicas de Scala, o si no, cuáles son sus recomendaciones para una serialización binaria eficiente?

+0

La serialización binaria es, en general, un problema difícil. Como la comunidad Scala es pequeña, sospecho que muchas personas solo viven con una biblioteca Java (ver http://stackoverflow.com/questions/239280/which-is-the-best-alternative-for-java-serialization) o rodar los suyos. –

Respuesta

1

Un compilador de búfers de protocolo para Scala: https://github.com/SandroGrzicic/ScalaBuff - ¿Quizás esto puede ayudar?

Hay un par de otros enlaces en la parte inferior de esta página: http://doc.akka.io/docs/akka/snapshot/scala/serialization.html

+0

Gracias por la sugerencia. Sin embargo, me gustaría mantener todo en un solo idioma, si es posible. Actualmente estoy usando SBinary nuevamente, pero parece que con un poco más de amor podría ser mucho más útil. Creo que debería poner mi dinero donde está mi boca y bifurcarlo ... :-) –

2

Probablemente, si sólo se necesita para serializar los datos y no los objetos de Java enteros, mejores soluciones son:

Estoy usando msgpack y bson en varios proyectos y funcionan bastante bien. Realmente recomiendo msgpack - tiene la representación binaria más eficiente (de estos tres) y es totalmente compatible con JSON.

Cuestiones relacionadas