msgpack 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +6 -0
- data/README.rdoc +3 -3
- data/ext/msgpack/buffer.c +0 -4
- data/ext/msgpack/compat.h +8 -7
- data/ext/msgpack/extconf.rb +1 -0
- data/ext/msgpack/packer.c +30 -0
- data/ext/msgpack/packer.h +4 -0
- data/ext/msgpack/packer_class.c +2 -0
- data/lib/msgpack/version.rb +1 -1
- metadata +151 -99
data/ChangeLog
CHANGED
data/README.rdoc
CHANGED
@@ -54,7 +54,7 @@ Packer provides advanced API to serialize objects in streaming style:
|
|
54
54
|
pk = MessagePack::Packer.new(io)
|
55
55
|
pk.write_array_header(2).write(e1).write(e2).flush
|
56
56
|
|
57
|
-
See API reference for details.
|
57
|
+
See {API reference}[http://ruby.msgpack.org/MessagePack/Packer.html] for details.
|
58
58
|
|
59
59
|
= Deserializing objects
|
60
60
|
|
@@ -83,14 +83,14 @@ or event-driven style which works well with EventMachine:
|
|
83
83
|
}
|
84
84
|
end
|
85
85
|
|
86
|
-
See API reference for details.
|
86
|
+
See {API reference}[http://ruby.msgpack.org/MessagePack/Unpacker.html] for details.
|
87
87
|
|
88
88
|
|
89
89
|
= Buffer API
|
90
90
|
|
91
91
|
MessagePack for Ruby provides a buffer API so that you can read or write data by hand, not via Packer or Unpacker API.
|
92
92
|
|
93
|
-
This MessagePack::Buffer
|
93
|
+
This {MessagePack::Buffer}[http://ruby.msgpack.org/MessagePack/Buffer.html] is backed with a fixed-length shared memory pool which is very fast for small data (<= 4KB),
|
94
94
|
and has zero-copy capability which significantly affects performance to handle large binary data.
|
95
95
|
|
96
96
|
|
data/ext/msgpack/buffer.c
CHANGED
data/ext/msgpack/compat.h
CHANGED
@@ -42,17 +42,18 @@
|
|
42
42
|
|
43
43
|
/*
|
44
44
|
* define STR_DUP_LIKELY_DOES_COPY
|
45
|
+
* check rb_str_dup actually copies the string or not
|
45
46
|
*/
|
46
|
-
#if defined(RUBY_VM) /* MRI 1.9 */
|
47
|
-
|
48
|
-
|
49
|
-
#
|
47
|
+
#if defined(RUBY_VM) && defined(FL_ALL) && defined(FL_USER1) && defined(FL_USER3) /* MRI 1.9 */
|
48
|
+
# define STR_DUP_LIKELY_DOES_COPY(str) FL_ALL(str, FL_USER1|FL_USER3) /* same as STR_ASSOC_P(str) */
|
49
|
+
|
50
|
+
#elif defined(FL_TEST) && defined(ELTS_SHARED) /* MRI 1.8 */
|
51
|
+
# define STR_DUP_LIKELY_DOES_COPY(str) (!FL_TEST(str, ELTS_SHARED))
|
50
52
|
|
51
|
-
|
53
|
+
//#elif defined(RUBINIUS) || defined(JRUBY) /* Rubinius and JRuby */
|
54
|
+
#else
|
52
55
|
# define STR_DUP_LIKELY_DOES_COPY(str) (1)
|
53
56
|
|
54
|
-
#else /* MRI 1.8 */
|
55
|
-
# define STR_DUP_LIKELY_DOES_COPY(str) (!FL_TEST(str, ELTS_SHARED))
|
56
57
|
#endif
|
57
58
|
|
58
59
|
|
data/ext/msgpack/extconf.rb
CHANGED
data/ext/msgpack/packer.c
CHANGED
@@ -18,6 +18,26 @@
|
|
18
18
|
|
19
19
|
#include "packer.h"
|
20
20
|
|
21
|
+
#ifdef RUBINIUS
|
22
|
+
static ID s_to_iter;
|
23
|
+
static ID s_next;
|
24
|
+
static ID s_key;
|
25
|
+
static ID s_value;
|
26
|
+
#endif
|
27
|
+
|
28
|
+
void msgpack_packer_static_init()
|
29
|
+
{
|
30
|
+
#ifdef RUBINIUS
|
31
|
+
s_to_iter = rb_intern("to_iter");
|
32
|
+
s_next = rb_intern("next");
|
33
|
+
s_key = rb_intern("key");
|
34
|
+
s_value = rb_intern("value");
|
35
|
+
#endif
|
36
|
+
}
|
37
|
+
|
38
|
+
void msgpack_packer_static_destroy()
|
39
|
+
{ }
|
40
|
+
|
21
41
|
void msgpack_packer_init(msgpack_packer_t* pk)
|
22
42
|
{
|
23
43
|
memset(pk, 0, sizeof(msgpack_packer_t));
|
@@ -89,7 +109,17 @@ void msgpack_packer_write_hash_value(msgpack_packer_t* pk, VALUE v)
|
|
89
109
|
unsigned int len32 = (unsigned int)len;
|
90
110
|
msgpack_packer_write_map_header(pk, len32);
|
91
111
|
|
112
|
+
#ifdef RUBINIUS
|
113
|
+
VALUE iter = rb_funcall(v, s_to_iter, 0);
|
114
|
+
VALUE entry = Qnil;
|
115
|
+
while(RTEST(entry = rb_funcall(iter, s_next, 1, entry))) {
|
116
|
+
VALUE key = rb_funcall(entry, s_key, 0);
|
117
|
+
VALUE val = rb_funcall(entry, s_value, 0);
|
118
|
+
write_hash_foreach(key, val, (VALUE) pk);
|
119
|
+
}
|
120
|
+
#else
|
92
121
|
rb_hash_foreach(v, write_hash_foreach, (VALUE) pk);
|
122
|
+
#endif
|
93
123
|
}
|
94
124
|
|
95
125
|
static void _msgpack_packer_write_other_value(msgpack_packer_t* pk, VALUE v)
|
data/ext/msgpack/packer.h
CHANGED
@@ -41,6 +41,10 @@ struct msgpack_packer_t {
|
|
41
41
|
|
42
42
|
#define PACKER_BUFFER_(pk) (&(pk)->buffer)
|
43
43
|
|
44
|
+
void msgpack_packer_static_init();
|
45
|
+
|
46
|
+
void msgpack_packer_static_destroy();
|
47
|
+
|
44
48
|
void msgpack_packer_init(msgpack_packer_t* pk);
|
45
49
|
|
46
50
|
void msgpack_packer_destroy(msgpack_packer_t* pk);
|
data/ext/msgpack/packer_class.c
CHANGED
@@ -250,6 +250,8 @@ void MessagePack_Packer_module_init(VALUE mMessagePack)
|
|
250
250
|
s_to_msgpack = rb_intern("to_msgpack");
|
251
251
|
s_write = rb_intern("write");
|
252
252
|
|
253
|
+
msgpack_packer_static_init();
|
254
|
+
|
253
255
|
cMessagePack_Packer = rb_define_class_under(mMessagePack, "Packer", rb_cObject);
|
254
256
|
|
255
257
|
rb_define_alloc_func(cMessagePack_Packer, Packer_alloc);
|
data/lib/msgpack/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: msgpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,104 +9,104 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
|
15
|
+
prerelease: false
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
17
|
requirements:
|
19
18
|
- - ~>
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: '1.0'
|
22
|
-
type: :development
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
21
|
none: false
|
22
|
+
name: bundler
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
24
|
requirements:
|
27
25
|
- - ~>
|
28
26
|
- !ruby/object:Gem::Version
|
29
27
|
version: '1.0'
|
28
|
+
none: false
|
29
|
+
type: :development
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
|
31
|
+
prerelease: false
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
33
|
requirements:
|
35
34
|
- - ~>
|
36
35
|
- !ruby/object:Gem::Version
|
37
36
|
version: 0.9.2
|
38
|
-
type: :development
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
37
|
none: false
|
38
|
+
name: rake
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
40
|
requirements:
|
43
41
|
- - ~>
|
44
42
|
- !ruby/object:Gem::Version
|
45
43
|
version: 0.9.2
|
44
|
+
none: false
|
45
|
+
type: :development
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
|
47
|
+
prerelease: false
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
49
|
requirements:
|
51
50
|
- - ~>
|
52
51
|
- !ruby/object:Gem::Version
|
53
52
|
version: 0.8.1
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
53
|
none: false
|
54
|
+
name: rake-compiler
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
56
|
requirements:
|
59
57
|
- - ~>
|
60
58
|
- !ruby/object:Gem::Version
|
61
59
|
version: 0.8.1
|
60
|
+
none: false
|
61
|
+
type: :development
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
|
63
|
+
prerelease: false
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
65
|
requirements:
|
67
66
|
- - ~>
|
68
67
|
- !ruby/object:Gem::Version
|
69
68
|
version: '2.11'
|
70
|
-
type: :development
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
69
|
none: false
|
70
|
+
name: rspec
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
72
|
requirements:
|
75
73
|
- - ~>
|
76
74
|
- !ruby/object:Gem::Version
|
77
75
|
version: '2.11'
|
76
|
+
none: false
|
77
|
+
type: :development
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
|
-
|
79
|
+
prerelease: false
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
81
|
requirements:
|
83
82
|
- - ~>
|
84
83
|
- !ruby/object:Gem::Version
|
85
84
|
version: '1.7'
|
86
|
-
type: :development
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
85
|
none: false
|
86
|
+
name: json
|
87
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
88
|
requirements:
|
91
89
|
- - ~>
|
92
90
|
- !ruby/object:Gem::Version
|
93
91
|
version: '1.7'
|
92
|
+
none: false
|
93
|
+
type: :development
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
|
95
|
+
prerelease: false
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
97
|
requirements:
|
99
98
|
- - ~>
|
100
99
|
- !ruby/object:Gem::Version
|
101
100
|
version: 0.8.2
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
101
|
none: false
|
102
|
+
name: yard
|
103
|
+
version_requirements: !ruby/object:Gem::Requirement
|
106
104
|
requirements:
|
107
105
|
- - ~>
|
108
106
|
- !ruby/object:Gem::Version
|
109
107
|
version: 0.8.2
|
108
|
+
none: false
|
109
|
+
type: :development
|
110
110
|
description: MessagePack is a binary-based efficient object serialization library.
|
111
111
|
It enables to exchange structured objects between many languages like JSON. But
|
112
112
|
unlike JSON, it is very fast and small.
|
@@ -116,53 +116,100 @@ extensions:
|
|
116
116
|
- ext/msgpack/extconf.rb
|
117
117
|
extra_rdoc_files: []
|
118
118
|
files:
|
119
|
-
-
|
120
|
-
|
121
|
-
-
|
122
|
-
|
123
|
-
-
|
124
|
-
|
125
|
-
-
|
126
|
-
|
127
|
-
-
|
128
|
-
|
129
|
-
-
|
130
|
-
|
131
|
-
-
|
132
|
-
|
133
|
-
-
|
134
|
-
|
135
|
-
-
|
136
|
-
|
137
|
-
-
|
138
|
-
|
139
|
-
-
|
140
|
-
|
141
|
-
-
|
142
|
-
|
143
|
-
-
|
144
|
-
|
145
|
-
-
|
146
|
-
|
147
|
-
-
|
148
|
-
|
149
|
-
-
|
150
|
-
|
151
|
-
-
|
152
|
-
|
153
|
-
-
|
154
|
-
|
155
|
-
-
|
156
|
-
|
157
|
-
-
|
158
|
-
|
159
|
-
-
|
160
|
-
|
161
|
-
-
|
162
|
-
|
163
|
-
-
|
164
|
-
|
165
|
-
-
|
119
|
+
- !binary |-
|
120
|
+
LmdpdGlnbm9yZQ==
|
121
|
+
- !binary |-
|
122
|
+
Q2hhbmdlTG9n
|
123
|
+
- !binary |-
|
124
|
+
R2VtZmlsZQ==
|
125
|
+
- !binary |-
|
126
|
+
UkVBRE1FLnJkb2M=
|
127
|
+
- !binary |-
|
128
|
+
UmFrZWZpbGU=
|
129
|
+
- !binary |-
|
130
|
+
ZG9jbGliL21zZ3BhY2sucmI=
|
131
|
+
- !binary |-
|
132
|
+
ZG9jbGliL21zZ3BhY2svYnVmZmVyLnJi
|
133
|
+
- !binary |-
|
134
|
+
ZG9jbGliL21zZ3BhY2svY29yZV9leHQucmI=
|
135
|
+
- !binary |-
|
136
|
+
ZG9jbGliL21zZ3BhY2svZXJyb3IucmI=
|
137
|
+
- !binary |-
|
138
|
+
ZG9jbGliL21zZ3BhY2svcGFja2VyLnJi
|
139
|
+
- !binary |-
|
140
|
+
ZG9jbGliL21zZ3BhY2svdW5wYWNrZXIucmI=
|
141
|
+
- !binary |-
|
142
|
+
ZXh0L21zZ3BhY2svYnVmZmVyLmM=
|
143
|
+
- !binary |-
|
144
|
+
ZXh0L21zZ3BhY2svYnVmZmVyLmg=
|
145
|
+
- !binary |-
|
146
|
+
ZXh0L21zZ3BhY2svYnVmZmVyX2NsYXNzLmM=
|
147
|
+
- !binary |-
|
148
|
+
ZXh0L21zZ3BhY2svYnVmZmVyX2NsYXNzLmg=
|
149
|
+
- !binary |-
|
150
|
+
ZXh0L21zZ3BhY2svY29tcGF0Lmg=
|
151
|
+
- !binary |-
|
152
|
+
ZXh0L21zZ3BhY2svY29yZV9leHQuYw==
|
153
|
+
- !binary |-
|
154
|
+
ZXh0L21zZ3BhY2svY29yZV9leHQuaA==
|
155
|
+
- !binary |-
|
156
|
+
ZXh0L21zZ3BhY2svZXh0Y29uZi5yYg==
|
157
|
+
- !binary |-
|
158
|
+
ZXh0L21zZ3BhY2svcGFja2VyLmM=
|
159
|
+
- !binary |-
|
160
|
+
ZXh0L21zZ3BhY2svcGFja2VyLmg=
|
161
|
+
- !binary |-
|
162
|
+
ZXh0L21zZ3BhY2svcGFja2VyX2NsYXNzLmM=
|
163
|
+
- !binary |-
|
164
|
+
ZXh0L21zZ3BhY2svcGFja2VyX2NsYXNzLmg=
|
165
|
+
- !binary |-
|
166
|
+
ZXh0L21zZ3BhY2svcmJpbml0LmM=
|
167
|
+
- !binary |-
|
168
|
+
ZXh0L21zZ3BhY2svcm1lbS5j
|
169
|
+
- !binary |-
|
170
|
+
ZXh0L21zZ3BhY2svcm1lbS5o
|
171
|
+
- !binary |-
|
172
|
+
ZXh0L21zZ3BhY2svc3lzZGVwLmg=
|
173
|
+
- !binary |-
|
174
|
+
ZXh0L21zZ3BhY2svc3lzZGVwX2VuZGlhbi5o
|
175
|
+
- !binary |-
|
176
|
+
ZXh0L21zZ3BhY2svc3lzZGVwX3R5cGVzLmg=
|
177
|
+
- !binary |-
|
178
|
+
ZXh0L21zZ3BhY2svdW5wYWNrZXIuYw==
|
179
|
+
- !binary |-
|
180
|
+
ZXh0L21zZ3BhY2svdW5wYWNrZXIuaA==
|
181
|
+
- !binary |-
|
182
|
+
ZXh0L21zZ3BhY2svdW5wYWNrZXJfY2xhc3MuYw==
|
183
|
+
- !binary |-
|
184
|
+
ZXh0L21zZ3BhY2svdW5wYWNrZXJfY2xhc3MuaA==
|
185
|
+
- !binary |-
|
186
|
+
bGliL21zZ3BhY2sucmI=
|
187
|
+
- !binary |-
|
188
|
+
bGliL21zZ3BhY2svdmVyc2lvbi5yYg==
|
189
|
+
- !binary |-
|
190
|
+
bXNncGFjay5nZW1zcGVj
|
191
|
+
- !binary |-
|
192
|
+
c3BlYy9idWZmZXJfaW9fc3BlYy5yYg==
|
193
|
+
- !binary |-
|
194
|
+
c3BlYy9idWZmZXJfc3BlYy5yYg==
|
195
|
+
- !binary |-
|
196
|
+
c3BlYy9jYXNlcy5qc29u
|
197
|
+
- !binary |-
|
198
|
+
c3BlYy9jYXNlcy5tc2c=
|
199
|
+
- !binary |-
|
200
|
+
c3BlYy9jYXNlc19jb21wYWN0Lm1zZw==
|
201
|
+
- !binary |-
|
202
|
+
c3BlYy9jYXNlc19zcGVjLnJi
|
203
|
+
- !binary |-
|
204
|
+
c3BlYy9mb3JtYXRfc3BlYy5yYg==
|
205
|
+
- !binary |-
|
206
|
+
c3BlYy9wYWNrZXJfc3BlYy5yYg==
|
207
|
+
- !binary |-
|
208
|
+
c3BlYy9yYW5kb21fY29tcGF0LnJi
|
209
|
+
- !binary |-
|
210
|
+
c3BlYy9zcGVjX2hlbHBlci5yYg==
|
211
|
+
- !binary |-
|
212
|
+
c3BlYy91bnBhY2tlcl9zcGVjLnJi
|
166
213
|
homepage: http://msgpack.org/
|
167
214
|
licenses: []
|
168
215
|
post_install_message:
|
@@ -170,39 +217,44 @@ rdoc_options: []
|
|
170
217
|
require_paths:
|
171
218
|
- lib
|
172
219
|
required_ruby_version: !ruby/object:Gem::Requirement
|
173
|
-
none: false
|
174
220
|
requirements:
|
175
221
|
- - ! '>='
|
176
222
|
- !ruby/object:Gem::Version
|
177
223
|
version: '0'
|
178
|
-
segments:
|
179
|
-
- 0
|
180
|
-
hash: -2311966328594479476
|
181
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
224
|
none: false
|
225
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
226
|
requirements:
|
184
227
|
- - ! '>='
|
185
228
|
- !ruby/object:Gem::Version
|
186
229
|
version: '0'
|
187
|
-
|
188
|
-
- 0
|
189
|
-
hash: -2311966328594479476
|
230
|
+
none: false
|
190
231
|
requirements: []
|
191
232
|
rubyforge_project: msgpack
|
192
|
-
rubygems_version: 1.8.
|
233
|
+
rubygems_version: 1.8.24
|
193
234
|
signing_key:
|
194
235
|
specification_version: 3
|
195
236
|
summary: MessagePack, a binary-based efficient data interchange format.
|
196
237
|
test_files:
|
197
|
-
-
|
198
|
-
|
199
|
-
-
|
200
|
-
|
201
|
-
-
|
202
|
-
|
203
|
-
-
|
204
|
-
|
205
|
-
-
|
206
|
-
|
207
|
-
-
|
238
|
+
- !binary |-
|
239
|
+
c3BlYy9idWZmZXJfaW9fc3BlYy5yYg==
|
240
|
+
- !binary |-
|
241
|
+
c3BlYy9idWZmZXJfc3BlYy5yYg==
|
242
|
+
- !binary |-
|
243
|
+
c3BlYy9jYXNlcy5qc29u
|
244
|
+
- !binary |-
|
245
|
+
c3BlYy9jYXNlcy5tc2c=
|
246
|
+
- !binary |-
|
247
|
+
c3BlYy9jYXNlc19jb21wYWN0Lm1zZw==
|
248
|
+
- !binary |-
|
249
|
+
c3BlYy9jYXNlc19zcGVjLnJi
|
250
|
+
- !binary |-
|
251
|
+
c3BlYy9mb3JtYXRfc3BlYy5yYg==
|
252
|
+
- !binary |-
|
253
|
+
c3BlYy9wYWNrZXJfc3BlYy5yYg==
|
254
|
+
- !binary |-
|
255
|
+
c3BlYy9yYW5kb21fY29tcGF0LnJi
|
256
|
+
- !binary |-
|
257
|
+
c3BlYy9zcGVjX2hlbHBlci5yYg==
|
258
|
+
- !binary |-
|
259
|
+
c3BlYy91bnBhY2tlcl9zcGVjLnJi
|
208
260
|
has_rdoc: false
|