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.