@@ -26,9 +26,9 @@ type lang_support = {
2626 json_variant_names : support ;
2727 json_repr_object : support ;
2828 json_adapter : support ;
29- imports : support ;
30- shared : support ;
31- open_enums : support ;
29+ imports : support ;
30+ binary_serialization : support ;
31+ open_enums : support ;
3232}
3333
3434(* A feature has a display name, a short description, and an accessor into
@@ -62,9 +62,9 @@ let features : feature list = [
6262 { name = " JSON variant names" ; description = " <json name=\" ...\" > on sum type constructors" ; get = fun s -> s.json_variant_names };
6363 { name = " Assoc as JSON object" ; description = " (string * v) list <json repr=\" object\" >" ; get = fun s -> s.json_repr_object };
6464 { name = " JSON adapter" ; description = " Custom pre/post-processing hooks" ; get = fun s -> s.json_adapter };
65- { name = " Cross-file imports" ; description = " from module import type1, type2" ; get = fun s -> s.imports };
66- { name = " Shared/cyclic types " ; description = " The shared type constructor for graphs " ; get = fun s -> s.shared };
67- { name = " Open enumerations" ; description = " Unknown variants round-tripped as-is" ; get = fun s -> s.open_enums };
65+ { name = " Cross-file imports" ; description = " from module import type1, type2" ; get = fun s -> s.imports };
66+ { name = " Binary serialization " ; description = " Biniou format: faster than JSON, field/constructor names encoded as low-collision hashes " ; get = fun s -> s.binary_serialization };
67+ { name = " Open enumerations" ; description = " Unknown variants round-tripped as-is" ; get = fun s -> s.open_enums };
6868]
6969
7070(* Baseline: every feature supported. Each language starts from this and
@@ -88,62 +88,56 @@ let all_yes = {
8888 json_variant_names = Yes ;
8989 json_repr_object = Yes ;
9090 json_adapter = Yes ;
91- imports = Yes ;
92- shared = Yes ;
93- open_enums = Yes ;
91+ imports = Yes ;
92+ binary_serialization = No ;
93+ open_enums = Yes ;
9494}
9595
9696(* The data. Each entry is (display name, support record). Column order in
9797 the output matches the order here. *)
9898let languages : (string * lang_support) list = [
9999 " atdml (OCaml)" , { all_yes with
100- shared = No ;
101100 open_enums = No ;
102101 };
103102 " atdgen (OCaml)" , { all_yes with
104- imports = No ;
103+ imports = No ;
104+ binary_serialization = Yes ;
105105 };
106106 " atdpy (Python)" , { all_yes with
107107 wrap = Planned ;
108108 json_adapter = Planned ;
109- shared = No ;
110109 open_enums = Planned ;
111110 };
112111 " atdts (TypeScript)" , { all_yes with
113112 json_adapter = Planned ;
114- shared = No ;
115113 open_enums = Planned ;
116114 };
117115 " atdj (Java)" , { all_yes with
118116 wrap = Planned ;
119117 json_repr_object = Planned ;
120118 json_adapter = Planned ;
121119 imports = Planned ;
122- shared = Planned ;
123120 open_enums = Planned ;
124121 };
125122 " atds (Scala)" , { all_yes with
126123 wrap = Planned ;
127124 json_repr_object = Planned ;
128125 json_adapter = Planned ;
129126 imports = Planned ;
130- shared = Planned ;
131127 open_enums = Planned ;
132128 };
133129 " atdd (Dart)" , { all_yes with
134130 doc_comments = Planned ;
135131 json_repr_object = Planned ;
136132 json_adapter = Planned ;
137133 imports = Planned ;
138- shared = Planned ;
139134 open_enums = Planned ;
140135 };
141136 " atdcpp (C++)" , { all_yes with
142137 doc_comments = Planned ;
143138 json_repr_object = Planned ;
144139 json_adapter = Planned ;
145140 imports = Planned ;
146- shared = Planned ;
147141 open_enums = Planned ;
148142 };
149143]
0 commit comments