Re: [ANN] Buffy, The Byte Buffer Slayer 1.0.0-beta1
Hi, sorry for hijacking this thread, but you might want to have a look at the binary parser combinator library we released today. The announcement is https://groups.google.com/d/msg/clojure/2c9-oXfKlp0/yGyeD7iWEnQJ If you define a codec just for the header of your data you can read only the bytes necessary for this header and leave all the rest in there. Steffen Am Dienstag, 28. Januar 2014 17:53:05 UTC+1 schrieb Michael Gardner: I'm looking to deal with a stream of data that includes a structured, variable-length header followed by a (potentially large) binary blob. I'd like to parse only the header while leaving the stream (can be a java stream or NIO channel, whichever works best) positioned at the start of the binary blob. Can Buffy currently do this? About naming: is the -type prefix to the built-in data types (string-type, etc) really necessary, given they're already grouped in the buffy.types namespace? I'd prefer to be able to write t/string, t/int32 and so on, personally. On Dec 17, 2013, at 06:44 , Alex P oleksand...@gmail.com javascript: wrote: Buffy [1][2] 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`. After the initial project announcement, we've got several feature-requests, which been addressed by current release: * Bit fields (masks of on/off bits) https://github.com/clojurewerkz/buffy#bit-type * Wrapped buffers (work with existing byte arrays or byte buffers): https://github.com/clojurewerkz/buffy#buffer-types * Dynamic frames (complex protocol generation and parsing, when you can't know the length of payload in advance, and need to introspect buffer for parsing, or add hint-fields into payload): https://github.com/clojurewerkz/buffy#dynamic-frames 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. Let us know what you think! [1] https://github.com/clojurewerkz/buffy [2] http://blog.clojurewerkz.org/blog/2013/11/29/introducing-buffy/ [2] http://clojurewerkz.org -- -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clo...@googlegroups.comjavascript: Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+u...@googlegroups.com javascript: 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+u...@googlegroups.com javascript:. 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.
Re: [ANN] Buffy, The Byte Buffer Slayer 1.0.0-beta1
I'm looking to deal with a stream of data that includes a structured, variable-length header followed by a (potentially large) binary blob. I'd like to parse only the header while leaving the stream (can be a java stream or NIO channel, whichever works best) positioned at the start of the binary blob. Can Buffy currently do this? About naming: is the -type prefix to the built-in data types (string-type, etc) really necessary, given they're already grouped in the buffy.types namespace? I'd prefer to be able to write t/string, t/int32 and so on, personally. On Dec 17, 2013, at 06:44 , Alex P oleksandr.pet...@gmail.com wrote: Buffy [1][2] 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`. After the initial project announcement, we've got several feature-requests, which been addressed by current release: * Bit fields (masks of on/off bits) https://github.com/clojurewerkz/buffy#bit-type * Wrapped buffers (work with existing byte arrays or byte buffers): https://github.com/clojurewerkz/buffy#buffer-types * Dynamic frames (complex protocol generation and parsing, when you can't know the length of payload in advance, and need to introspect buffer for parsing, or add hint-fields into payload): https://github.com/clojurewerkz/buffy#dynamic-frames 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. Let us know what you think! [1] https://github.com/clojurewerkz/buffy [2] http://blog.clojurewerkz.org/blog/2013/11/29/introducing-buffy/ [2] http://clojurewerkz.org -- -- 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.
[ANN] Buffy, The Byte Buffer Slayer 1.0.0-beta1
Buffy [1][2] 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`. After the initial project announcement, we've got several feature-requests, which been addressed by current release: * Bit fields (masks of on/off bits) https://github.com/clojurewerkz/buffy#bit-type * Wrapped buffers (work with existing byte arrays or byte buffers): https://github.com/clojurewerkz/buffy#buffer-types * Dynamic frames (complex protocol generation and parsing, when you can't know the length of payload in advance, and need to introspect buffer for parsing, or add hint-fields into payload): https://github.com/clojurewerkz/buffy#dynamic-frames 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. Let us know what you think! [1] https://github.com/clojurewerkz/buffy [2] http://blog.clojurewerkz.org/blog/2013/11/29/introducing-buffy/ [2] http://clojurewerkz.org -- -- 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.