Re: [ANN] Buffy, The Byte Buffer Slayer 1.0.0-beta1

2014-01-29 Thread Steffen
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

2014-01-28 Thread 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 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

2013-12-17 Thread Alex P
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.