I needed a library to handle marshaling application defined (C struct) binary TCP/IP protocol packets in a Clojure client app replacing a legacy C++ client and there didn't seem to be an existing library that performed as I needed. So, I've written a Marshal library that marshals from the network to/from Clojure.
Github: http://github.com/russellc/Marshal Clojars: https://clojars.org/marshal //C header file definition struct packet { unsigned long type; unsigned long size; long data[1]; }; (require '[marshal.core :as m]) (def packet (m/struct :type m/uint32 :size m/uint32 :data (m/array m/ sint32 :size))) (m/write output-stream packet {:type 1 :size 2 :data [1 -1]}) (m/read input-stream packet) => {:type 1 :size 2 :data [1 -1]} -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en