You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This library is specifically designed to support layering Transit
165
165
implementations for other JVM-based languages on top of it. There are
166
-
three steps to implementing a library for a new language on top of
167
-
this:
166
+
three steps to implementing a library for a new language on top of
167
+
this:
168
168
169
169
- Implement WriteHandlers and ReadHandlers specific for the target
170
170
language. Typically, WriteHandlers will be used _in addition to_ the
171
171
ones provided by the Java library (see
172
-
TransitFactory.defaultWriteHandlers). ReadHandlers will be used _in
172
+
TransitFactory.defaultWriteHandlers). ReadHandlers will be used _in
173
173
place of_ some of the ones provided by the Java Libary (see
174
-
TransitFactory.defaultReadHandlers).
175
-
174
+
TransitFactory.defaultReadHandlers).
175
+
176
176
- Implement a factory API to create Readers and Writers. In general,
177
177
Readers and Writers encapsulate the stream they work with. The APIs
178
178
should enable an application to provide custom WriteHandlers and
@@ -183,25 +183,25 @@ this:
183
183
com.cognitect.transit.DefaultReadHandler). The factory API should
184
184
delegate to TransitFactory to create Readers and Writers with the
185
185
correct options.
186
-
186
+
187
187
- Implement a MapReader and an ArrayReader for unmarshaling these
188
188
Transit ground types into objects appropriate for the target
189
189
language. In the factory API for creating Readers, use each new Reader's
190
190
com.cognitect.transit.SPI.ReaderSPI interface to attach instances
191
191
of the new library's custom MapReader and ArrayReader
192
192
implementations to a Reader before returning it. This must be done
193
193
before the Reader instance is used to read data.
194
-
194
+
195
195
N.B. The ReaderSPI interface is in an impl package because it is only
196
196
intended to be used by layered Transit libraries, not by
197
197
applications using Transit.
198
-
198
+
199
199
The [Clojure Transit library](https://github.com/cognitect/transit-clj)
200
200
is implemented using this layering approach and can be used as an
201
201
example of how to implement support for additional JVM languages
202
202
without having to implement all of Transit from scratch.
203
203
204
-
## Contributing
204
+
## Contributing
205
205
206
206
This library is open source, developed internally by Cognitect. We welcome discussions of potential problems and enhancement suggestions on the [transit-format mailing list](https://groups.google.com/forum/#!forum/transit-format). Issues can be filed using GitHub [issues](https://github.com/cognitect/transit-java/issues) for this project. Because transit is incorporated into products and client projects, we prefer to do development internally and are not accepting pull requests or patches.
0 commit comments