@Cesar I've made a little advancement on dynamic encoding/decoding, here's a gist with a proof of concept: https://gist.github.com/ifesdjeen/7902409
On Wed, Dec 4, 2013 at 8:28 AM, Cesar Canassa <cesar.cana...@gmail.com>wrote: > Hi, > > I see that the repeated-type requires a constant repeat count. Are you > planning to include a more dynamic version à la Gloss prefixes/headers? > > The lib looks really nice. Binary handling libraries are really helpful. > > Thanks, > Cesar Canassa > > > > On Mon, Dec 2, 2013 at 7:09 PM, Alex P <oleksandr.pet...@gmail.com> wrote: > >> It's different in a way we manipulate the data: >> >> We've opted out for default-lazy way (you're getting and setting separate >> values instead of serialising/deserialising an entire payload). >> >> Another difference is that we don't have Lamina as a loaded artifact >> (which may not be an issue for majority of people, but was for us >> because of an internal version conflict with some other library). >> Obviously, there are ways around it, but we tried to bring in minimum >> possible amount of dependencies, and be able to use it with Netty4 (which >> is currently underrepresented in Clojure world). >> >> There are other subtle difference, but I don't think they're worth >> mentioning, Gloss is a great library, but Buffy is doing things in a subtly >> different way. Main purpose (as we're using it) - for off-heap storage / >> data structures, and for binary protocol implementations in Clojure >> (right now, we have a sketch of Cassandra binary protocol implemented on >> top of Buffy, although I'm not sure wether it's going to be >> production-ready any time soon). >> >> >> Thanks for props! >> >> On Saturday, November 30, 2013 10:33:31 PM UTC+1, Thomas wrote: >>> >>> Looks really really great and could you please explain how it differs >>> from gloss [1]. Any advantages? Disadvantages? >>> >>> Thanks >>> Thomas >>> >>> [1] >>> https://github.com/ztellman/gloss<https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fztellman%2Fgloss&sa=D&sntz=1&usg=AFQjCNEEBWzFouSZ3s8uPpizBue7fuhzQA> >>> >>> On Friday, November 29, 2013 10:15:45 PM UTC, Alex P wrote: >>>> >>>> Buffy [1] is a Clojure library to work with Binary Data, write complete >>>> binary protocol implementations >>>> in clojure, store your complex data structures in an off-heap chache, >>>> read binary files and do >>>> everything you would usually do `ByteBuffer`. >>>> >>>> Main features & motivation to write it >>>> >>>> * partial deserialization (read and deserialise parts of a byte >>>> buffer) >>>> * named access (access parts of your buffer by names) >>>> * composing/decomposing from key/value pairs >>>> * pretty hexdump >>>> * many useful default types that you can combine and extend easily >>>> >>>> Data types include: >>>> >>>> * primitives, such as `int32`, `boolean`, `byte`, `short`, `medium`, >>>> `float`, `long` >>>> * arbitrary-length `string` >>>> * byte arrays >>>> * composite types (combine any of primitives together) >>>> * repeated type (repeat any primitive arbitrary amount of times in >>>> payload) >>>> * enum type (for mapping between human-readable and binary >>>> representation of constants) >>>> >>>> Buffy has been serving us well for recent time, and no major issues >>>> were revealed. However, until >>>> it reaches GA, we can't guarantee 100% backward compatibility, although >>>> we're thought it through >>>> very well and used our best knowledge to make it right. >>>> >>>> Buffy is a ClojureWerkz project, same as Monger, Elastisch, Cassaforte, >>>> Neocons, Meltdown and >>>> many others. >>>> >>>> [1] https://github.com/clojurewerkz/buffy >>>> [2] http://clojurewerkz.org >>>> >>>> -- >>>> >>>> Alex P >>>> >>>> http://clojurewerkz.org >>>> >>>> http://twitter.com/ifesdjeen >>>> >>> -- >> -- >> 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 >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- > -- > 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 > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > -- alex p -- -- 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.