2012-02-21 14 views

risposta

2

Se per "come protocollo di Google buffer "intendi la capacità di generare codice per più lingue quindi probabilmente tale cosa non esiste. Emulare i tipi di somma nelle lingue che non li supportano è alquanto scomodo (prova ad abbinare il modello su boost: variante per esempio). Quindi ha senso lasciarli fuori se l'obiettivo principale sono le lingue tradizionali.

Se vi accontentate di utilizzare solo haskell/ocaml/qualunque sia l'abbondanza di scelte. Per haskell ci sono cereal, binary, safecopy e probabilmente altri. C'è piqi project per ocaml.

+1

Beh, non è necessario il pattern matching, solo i sindacati taggati. Un altro esempio potrebbe essere un protobuf con 3 campi opzionali con un vincolo che solo uno di essi potrebbe essere impostato alla volta. Sono principalmente alla ricerca di piattaforme incrociate con supporto per alcuni linguaggi mainstream come C++, Java o forse Python. – user239558

+0

Penso che i tipi di somma siano poco pratici (non imposibili) senza abbinamento di modelli. L'utilizzo di campi facoltativi è fragile poiché non è possibile applicare in genere questo compito. è previsto che sia possibile concatenare i messaggi e che il vincolo potrebbe interrompersi durante la concatenazione – Shimuuar

2

Non sono a conoscenza di alcun sistema pratico che supporti tipi di somma diversi da Piqi (sono l'autore). Piqi è compatibile con Protocol Buffers e supporta nativamente OCaml ed Erlang. L'assenza di tipi di somma nei buffer del protocollo è stata una delle ragioni per cui l'ho creata.

Il mio piano è quello di espandere Piqi per supportare altre lingue come Haskell, Clojure, ecc

0

C'è necessità di un formato "ad alte prestazioni"? Molti formati generici dovrebbero essere in grado di utilizzare semplicemente i costrutti esistenti, in particolare Maps/hashtables, per supportare i sindacati (è sufficiente includere la voce con la chiave che indica il tipo di valore effettivo). Quindi potresti semplicemente usare una semplice convenzione per usare, per esempio, JSON, per trasferire tali contenuti.

Problemi correlati