vulcan 0.3.0 → 0.4.0

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.
Files changed (211) hide show
  1. data/bin/vulcan +3 -1
  2. data/lib/vulcan/cli.rb +22 -3
  3. data/lib/vulcan/version.rb +1 -1
  4. data/server/bin/make +1 -3
  5. data/server/lib/spawner.js +9 -4
  6. data/server/node_modules/connect-form/node_modules/formidable/Readme.md +13 -2
  7. data/server/node_modules/connect-form/node_modules/formidable/lib/incoming_form.js +19 -7
  8. data/server/node_modules/connect-form/node_modules/formidable/lib/multipart_parser.js +12 -1
  9. data/server/node_modules/connect-form/node_modules/formidable/package.json +1 -1
  10. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/file/plain.txt +1 -0
  11. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/no-filename/generic.http +13 -0
  12. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +0 -10
  13. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +0 -9
  14. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/js/no-filename.js +3 -0
  15. data/server/node_modules/connect-form/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +1 -1
  16. data/server/node_modules/cradle/lib/cradle.js +0 -1
  17. data/server/node_modules/cradle/package.json +3 -3
  18. data/server/node_modules/cradle/test/cache-test.js +6 -7
  19. data/server/node_modules/cradle/test/cradle-test.js +4 -5
  20. data/server/node_modules/cradle/test/response-test.js +5 -6
  21. data/server/node_modules/express/History.md +53 -1
  22. data/server/node_modules/express/Makefile +3 -9
  23. data/server/node_modules/express/Readme.md +3 -1
  24. data/server/node_modules/express/bin/express +65 -66
  25. data/server/node_modules/express/lib/express.js +1 -1
  26. data/server/node_modules/express/lib/request.js +23 -9
  27. data/server/node_modules/express/lib/response.js +3 -2
  28. data/server/node_modules/express/lib/utils.js +13 -0
  29. data/server/node_modules/express/lib/view/view.js +2 -1
  30. data/server/node_modules/express/lib/view.js +19 -16
  31. data/server/node_modules/express/node_modules/connect/lib/connect.js +1 -1
  32. data/server/node_modules/express/node_modules/connect/lib/http.js +2 -0
  33. data/server/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js +135 -31
  34. data/server/node_modules/express/node_modules/connect/lib/middleware/limit.js +5 -1
  35. data/server/node_modules/express/node_modules/connect/lib/middleware/session.js +2 -2
  36. data/server/node_modules/express/node_modules/connect/lib/middleware/static.js +26 -21
  37. data/server/node_modules/express/node_modules/connect/lib/middleware/staticCache.js +91 -38
  38. data/server/node_modules/express/node_modules/connect/lib/middleware/vhost.js +1 -1
  39. data/server/node_modules/express/node_modules/connect/lib/utils.js +11 -4
  40. data/server/node_modules/express/node_modules/connect/node_modules/formidable/Makefile +14 -0
  41. data/server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md +286 -0
  42. data/server/node_modules/express/node_modules/connect/node_modules/formidable/TODO +3 -0
  43. data/server/node_modules/express/node_modules/connect/node_modules/formidable/benchmark/bench-multipart-parser.js +70 -0
  44. data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/post.js +43 -0
  45. data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/upload.js +48 -0
  46. data/server/node_modules/express/node_modules/connect/node_modules/formidable/index.js +1 -0
  47. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/file.js +61 -0
  48. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js +377 -0
  49. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/index.js +3 -0
  50. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js +312 -0
  51. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/querystring_parser.js +25 -0
  52. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/util.js +6 -0
  53. data/server/node_modules/express/node_modules/connect/node_modules/formidable/package.json +22 -0
  54. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/common.js +19 -0
  55. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/funkyfilename.txt +1 -0
  56. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/plain.txt +1 -0
  57. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http +13 -0
  58. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md +3 -0
  59. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +26 -0
  60. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http +24 -0
  61. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http +23 -0
  62. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +24 -0
  63. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http +22 -0
  64. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http +22 -0
  65. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http +22 -0
  66. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/no-filename.js +3 -0
  67. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/special-chars-in-filename.js +21 -0
  68. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multi_video.upload +0 -0
  69. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multipart.js +72 -0
  70. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/integration/test-fixtures.js +89 -0
  71. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/common.js +24 -0
  72. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/integration/test-multipart-parser.js +80 -0
  73. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-file.js +104 -0
  74. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js +715 -0
  75. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +50 -0
  76. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-querystring-parser.js +45 -0
  77. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/system/test-multi-video-upload.js +72 -0
  78. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/run.js +2 -0
  79. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/unit/test-incoming-form.js +63 -0
  80. data/server/node_modules/express/node_modules/connect/node_modules/formidable/tool/record.js +47 -0
  81. data/server/node_modules/express/node_modules/connect/package.json +7 -6
  82. data/server/node_modules/express/node_modules/connect/test.js +44 -31
  83. data/server/node_modules/express/node_modules/mime/mime.js +3 -3
  84. data/server/node_modules/express/node_modules/mime/package.json +21 -10
  85. data/server/node_modules/express/node_modules/mime/test.js +2 -3
  86. data/server/node_modules/express/node_modules/mime/{mime.types → types/mime.types} +0 -0
  87. data/server/node_modules/express/node_modules/mime/{node.types → types/node.types} +17 -0
  88. data/server/node_modules/express/node_modules/mkdirp/LICENSE +21 -0
  89. data/server/node_modules/express/node_modules/mkdirp/README.markdown +21 -0
  90. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js +6 -0
  91. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.orig +6 -0
  92. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.rej +19 -0
  93. data/server/node_modules/express/node_modules/mkdirp/index.js +20 -0
  94. data/server/node_modules/express/node_modules/mkdirp/package.json +23 -0
  95. data/server/node_modules/express/node_modules/mkdirp/test/mkdirp.js +28 -0
  96. data/server/node_modules/express/node_modules/mkdirp/test/race.js +41 -0
  97. data/server/node_modules/express/node_modules/mkdirp/test/rel.js +32 -0
  98. data/server/node_modules/express/node_modules/qs/History.md +11 -0
  99. data/server/node_modules/express/node_modules/qs/Makefile +1 -3
  100. data/server/node_modules/express/node_modules/qs/Readme.md +2 -4
  101. data/server/node_modules/express/node_modules/qs/lib/querystring.js +100 -74
  102. data/server/node_modules/express/node_modules/qs/package.json +9 -2
  103. data/server/node_modules/express/node_modules/qs/test/mocha.opts +2 -0
  104. data/server/node_modules/express/node_modules/qs/test/{parse.test.js → parse.js} +1 -2
  105. data/server/node_modules/express/node_modules/qs/test/{stringify.test.js → stringify.js} +0 -0
  106. data/server/node_modules/express/package.json +9 -8
  107. data/server/node_modules/express/testing/foo/app.js +35 -0
  108. data/server/node_modules/express/testing/foo/package.json +9 -0
  109. data/server/node_modules/express/testing/foo/public/stylesheets/style.css +8 -0
  110. data/server/node_modules/express/testing/foo/routes/index.js +10 -0
  111. data/server/node_modules/express/testing/foo/views/index.jade +2 -0
  112. data/server/node_modules/express/testing/foo/views/layout.jade +6 -0
  113. data/server/node_modules/express/testing/index.js +43 -0
  114. data/server/node_modules/express/testing/public/test.txt +2971 -0
  115. data/server/node_modules/express/testing/views/page.html +1 -0
  116. data/server/node_modules/express/testing/views/page.jade +3 -0
  117. data/server/node_modules/express/testing/views/test.md +1 -0
  118. data/server/node_modules/express/testing/views/user/index.jade +1 -0
  119. data/server/node_modules/express/testing/views/user/list.jade +1 -0
  120. data/server/node_modules/node-uuid/README.md +166 -67
  121. data/server/node_modules/node-uuid/benchmark/README.md +53 -0
  122. data/server/node_modules/node-uuid/benchmark/bench.gnu +174 -0
  123. data/server/node_modules/node-uuid/benchmark/bench.sh +34 -0
  124. data/server/node_modules/node-uuid/{test → benchmark}/benchmark-native.c +0 -0
  125. data/server/node_modules/node-uuid/benchmark/benchmark.js +84 -0
  126. data/server/node_modules/node-uuid/package.json +5 -3
  127. data/server/node_modules/node-uuid/test/benchmark-native +0 -0
  128. data/server/node_modules/node-uuid/test/compare_v1.js +63 -0
  129. data/server/node_modules/node-uuid/test/test.html +3 -0
  130. data/server/node_modules/node-uuid/test/test.js +214 -57
  131. data/server/node_modules/node-uuid/uuid.js +225 -56
  132. data/server/node_modules/restler/README.md +20 -7
  133. data/server/node_modules/restler/bin/restler +1 -1
  134. data/server/node_modules/restler/lib/multipartform.js +9 -8
  135. data/server/node_modules/restler/lib/restler.js +64 -22
  136. data/server/node_modules/restler/package.json +2 -2
  137. data/server/node_modules/restler/test/restler.js +22 -2
  138. data/server/node_modules/restler/test/test_helper.js +20 -1
  139. data/server/package.json +1 -2
  140. data/server/web.js +30 -7
  141. metadata +90 -86
  142. data/server/node_modules/cradle/node_modules/vows/LICENSE +0 -20
  143. data/server/node_modules/cradle/node_modules/vows/Makefile +0 -7
  144. data/server/node_modules/cradle/node_modules/vows/README.md +0 -39
  145. data/server/node_modules/cradle/node_modules/vows/bin/vows +0 -515
  146. data/server/node_modules/cradle/node_modules/vows/lib/assert/error.js +0 -27
  147. data/server/node_modules/cradle/node_modules/vows/lib/assert/macros.js +0 -215
  148. data/server/node_modules/cradle/node_modules/vows/lib/assert/utils.js +0 -77
  149. data/server/node_modules/cradle/node_modules/vows/lib/vows/console.js +0 -131
  150. data/server/node_modules/cradle/node_modules/vows/lib/vows/context.js +0 -55
  151. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/file.js +0 -29
  152. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-foot.html +0 -2
  153. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-head.html +0 -61
  154. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-html.js +0 -54
  155. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-json.js +0 -54
  156. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-plain.js +0 -38
  157. data/server/node_modules/cradle/node_modules/vows/lib/vows/extras.js +0 -28
  158. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/dot-matrix.js +0 -67
  159. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/json.js +0 -16
  160. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/silent.js +0 -8
  161. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/spec.js +0 -44
  162. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/watch.js +0 -39
  163. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/xunit.js +0 -90
  164. data/server/node_modules/cradle/node_modules/vows/lib/vows/suite.js +0 -319
  165. data/server/node_modules/cradle/node_modules/vows/lib/vows.js +0 -193
  166. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/LICENSE +0 -20
  167. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/Makefile +0 -4
  168. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/README.md +0 -72
  169. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/lib/eyes.js +0 -233
  170. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/package.json +0 -14
  171. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/test/eyes-test.js +0 -55
  172. data/server/node_modules/cradle/node_modules/vows/package.json +0 -14
  173. data/server/node_modules/cradle/node_modules/vows/test/assert-test.js +0 -135
  174. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/failing.js +0 -18
  175. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/log.js +0 -18
  176. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/passing.js +0 -17
  177. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/stderr.js +0 -18
  178. data/server/node_modules/cradle/node_modules/vows/test/isolate-test.js +0 -140
  179. data/server/node_modules/cradle/node_modules/vows/test/testInherit.js +0 -133
  180. data/server/node_modules/cradle/node_modules/vows/test/vows-error-test.js +0 -51
  181. data/server/node_modules/cradle/node_modules/vows/test/vows-test.js +0 -374
  182. data/server/node_modules/express/node_modules/mime/index.js +0 -1
  183. data/server/node_modules/express/node_modules/qs/support/expresso/History.md +0 -128
  184. data/server/node_modules/express/node_modules/qs/support/expresso/Makefile +0 -53
  185. data/server/node_modules/express/node_modules/qs/support/expresso/Readme.md +0 -61
  186. data/server/node_modules/express/node_modules/qs/support/expresso/bin/expresso +0 -856
  187. data/server/node_modules/express/node_modules/qs/support/expresso/docs/api.html +0 -1080
  188. data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.html +0 -377
  189. data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.md +0 -290
  190. data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/foot.html +0 -3
  191. data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/head.html +0 -42
  192. data/server/node_modules/express/node_modules/qs/support/expresso/lib/bar.js +0 -4
  193. data/server/node_modules/express/node_modules/qs/support/expresso/lib/foo.js +0 -16
  194. data/server/node_modules/express/node_modules/qs/support/expresso/package.json +0 -12
  195. data/server/node_modules/express/node_modules/qs/support/expresso/test/assert.test.js +0 -91
  196. data/server/node_modules/express/node_modules/qs/support/expresso/test/async.test.js +0 -12
  197. data/server/node_modules/express/node_modules/qs/support/expresso/test/bar.test.js +0 -13
  198. data/server/node_modules/express/node_modules/qs/support/expresso/test/foo.test.js +0 -14
  199. data/server/node_modules/express/node_modules/qs/support/expresso/test/http.test.js +0 -146
  200. data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/async.test.js +0 -39
  201. data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/http.test.js +0 -48
  202. data/server/node_modules/express/node_modules/qs/support/should/History.md +0 -22
  203. data/server/node_modules/express/node_modules/qs/support/should/Makefile +0 -6
  204. data/server/node_modules/express/node_modules/qs/support/should/Readme.md +0 -248
  205. data/server/node_modules/express/node_modules/qs/support/should/examples/runner.js +0 -53
  206. data/server/node_modules/express/node_modules/qs/support/should/index.js +0 -2
  207. data/server/node_modules/express/node_modules/qs/support/should/lib/eql.js +0 -91
  208. data/server/node_modules/express/node_modules/qs/support/should/lib/should.js +0 -548
  209. data/server/node_modules/express/node_modules/qs/support/should/package.json +0 -8
  210. data/server/node_modules/express/node_modules/qs/support/should/test/should.test.js +0 -358
  211. data/server/node_modules/node-uuid/test/benchmark.js +0 -27
@@ -0,0 +1 @@
1
+ p register test
@@ -0,0 +1,3 @@
1
+ html
2
+ body
3
+ h1 test
@@ -0,0 +1 @@
1
+ testing _some_ markdown
@@ -0,0 +1 @@
1
+ p user list page
@@ -1,100 +1,199 @@
1
1
  # node-uuid
2
2
 
3
- Simple, fast generation of RFC4122[RFC4122(v4)](http://www.ietf.org/rfc/rfc4122.txt) UUIDS. It runs in node.js and all major browsers.
3
+ Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
4
4
 
5
- ## Installation
5
+ Features:
6
6
 
7
- npm install node-uuid
7
+ * Generate RFC4122 version 1 or version 4 UUIDs
8
+ * Runs in node.js and all browsers.
9
+ * Cryptographically strong random # generation on supporting platforms
10
+ * 1.1K minified and gzip'ed (Want something smaller? Check this [crazy shit](https://gist.github.com/982883) out! )
11
+ * [Annotated source code](http://broofa.github.com/node-uuid/docs/uuid.html)
8
12
 
9
- ### In browser
13
+ ## Getting Started
10
14
 
11
- <script src="uuid.js"></script>
15
+ Install it in your browser:
12
16
 
13
- ### In node.js
17
+ ```html
18
+ <script src="uuid.js"></script>
19
+ ```
14
20
 
15
- var uuid = require('node-uuid');
21
+ Or in node.js:
16
22
 
17
- ## Usage
23
+ ```
24
+ npm install node-uuid
25
+ ```
18
26
 
19
- ### Generate a String UUID
27
+ ```javascript
28
+ var uuid = require('node-uuid');
29
+ ```
20
30
 
21
- var id = uuid(); // -> '92329D39-6F5C-4520-ABFC-AAB64544E172'
31
+ Then create some ids ...
22
32
 
23
- ### Generate a Binary UUID
33
+ ```javascript
34
+ // Generate a v1 (time-based) id
35
+ uuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
24
36
 
25
- // Simple form - allocates a Buffer/Array for you
26
- var buf = uuid('binary');
27
- // node.js -> <Buffer 08 50 05 c8 9c b2 4c 07 ac 07 d1 4f b9 f5 04 51>
28
- // browser -> [8, 80, 5, 200, 156, 178, 76, 7, 172, 7, 209, 79, 185, 245, 4, 81]
37
+ // Generate a v4 (random) id
38
+ uuid.v4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
39
+ ```
29
40
 
30
- // Provide your own Buffer or Array
31
- var buf = new Array(16);
32
- uuid('binary', buf); // -> [8, 80, 5, 200, 156, 178, 76, 7, 172, 7, 209, 79, 185, 245, 4, 81]
33
- var buf = new Buffer(16);
34
- uuid('binary', buf); // -> <Buffer 08 50 05 c8 9c b2 4c 07 ac 07 d1 4f b9 f5 04 51>
41
+ ## API
35
42
 
36
- // Provide your own Buffer/Array, plus specify offset
37
- // (e.g. here we fill an array with 3 uuids)
38
- var buf = new Buffer(16 \* 3);
39
- uuid('binary', id, 0);
40
- uuid('binary', id, 16);
41
- uuid('binary', id, 32);
43
+ ### uuid.v1([`options` [, `buffer` [, `offset`]]])
42
44
 
43
- ## Testing
45
+ Generate and return a RFC4122 v1 (timestamp-based) UUID.
46
+
47
+ * `options` - (Object) Optional uuid state to apply. Properties may include:
48
+
49
+ * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomnly generated ID. See note 1.
50
+ * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.
51
+ * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used.
52
+ * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.
53
+
54
+ * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
55
+ * `offset` - (Number) Starting index in `buffer` at which to begin writing.
56
+
57
+ Returns `buffer`, if specified, otherwise the string form of the UUID
58
+
59
+ Notes:
60
+
61
+ 1. The randomly generated node id is only guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)
62
+
63
+ Example: Generate string UUID with fully-specified options
64
+
65
+ ```javascript
66
+ uuid.v1({
67
+ node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
68
+ clockseq: 0x1234,
69
+ msecs: new Date('2011-11-01').getTime(),
70
+ nsecs: 5678
71
+ }); // -> "710b962e-041c-11e1-9234-0123456789ab"
72
+ ```
73
+
74
+ Example: In-place generation of two binary IDs
75
+
76
+ ```javascript
77
+ // Generate two ids in an array
78
+ var arr = new Array(32); // -> []
79
+ uuid.v1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
80
+ uuid.v1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
81
+
82
+ // Optionally use uuid.unparse() to get stringify the ids
83
+ uuid.unparse(buffer); // -> '02a2ce90-1432-11e1-8558-0b488e4fc115'
84
+ uuid.unparse(buffer, 16) // -> '02a31cb0-1432-11e1-8558-0b488e4fc115'
85
+ ```
86
+
87
+ ### uuid.v4([`options` [, `buffer` [, `offset`]]])
88
+
89
+ Generate and return a RFC4122 v4 UUID.
90
+
91
+ * `options` - (Object) Optional uuid state to apply. Properties may include:
92
+
93
+ * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values
94
+ * `rng` - (Function) Random # generator to use. Set to one of the built-in generators - `uuid.mathRNG` (all platforms), `uuid.nodeRNG` (node.js only), `uuid.whatwgRNG` (WebKit only) - or a custom function that returns an array[16] of byte values.
95
+
96
+ * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
97
+ * `offset` - (Number) Starting index in `buffer` at which to begin writing.
98
+
99
+ Returns `buffer`, if specified, otherwise the string form of the UUID
44
100
 
45
- test/test.js generates performance data (similar to test/benchmark.js). It also verifies the syntax of 100K string UUIDs, and logs the distribution of hex digits found therein. For example:
101
+ Example: Generate string UUID with fully-specified options
46
102
 
47
- - - - Performance Data - - -
48
- uuid(): 1052631 uuids/second
49
- uuid('binary'): 680272 uuids/second
50
- uuid('binary', buffer): 2702702 uuids/second
103
+ ```javascript
104
+ uuid.v4({
105
+ random: [
106
+ 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
107
+ 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
108
+ ]
109
+ });
110
+ // -> "109156be-c4fb-41ea-b1b4-efe1671c5836"
111
+ ```
51
112
 
52
- - - - Distribution of Hex Digits (% deviation from ideal) - - -
53
- 0 |================================| 187705 (0.11%)
54
- 1 |================================| 187880 (0.2%)
55
- 2 |================================| 186875 (-0.33%)
56
- 3 |================================| 186847 (-0.35%)
57
- 4 |==================================================| 287433 (-0.02%)
58
- 5 |================================| 187910 (0.22%)
59
- 6 |================================| 188172 (0.36%)
60
- 7 |================================| 187350 (-0.08%)
61
- 8 |====================================| 211994 (-0.24%)
62
- 9 |====================================| 212664 (0.08%)
63
- A |=====================================| 213185 (0.32%)
64
- B |=====================================| 212877 (0.18%)
65
- C |================================| 187445 (-0.03%)
66
- D |================================| 186737 (-0.41%)
67
- E |================================| 187155 (-0.18%)
68
- F |================================| 187771 (0.14%)
113
+ Example: Generate two IDs in a single buffer
69
114
 
70
- Note that the increased values for 4 and 8-B are expected as part of the RFC4122 syntax (and are accounted for in the deviation calculation). BTW, if someone wants to do the calculation to determine what a statistically significant deviation would be, I'll gladly add that to the test.
115
+ ```javascript
116
+ var buffer = new Array(32); // (or 'new Buffer' in node.js)
117
+ uuid.v4(null, buffer, 0);
118
+ uuid.v4(null, buffer, 16);
119
+ ```
71
120
 
72
- ### In browser
121
+ ### uuid.parse(id[, buffer[, offset]])
122
+ ### uuid.unparse(buffer[, offset])
123
+
124
+ Parse and unparse UUIDs
125
+
126
+ * `id` - (String) UUID(-like) string
127
+ * `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. Default: A new Array or Buffer is used
128
+ * `offset` - (Number) Starting index in `buffer` at which to begin writing. Default: 0
129
+
130
+ Example parsing and unparsing a UUID string
131
+
132
+ ```javascript
133
+ var bytes = uuid.parse('797ff043-11eb-11e1-80d6-510998755d10'); // -> <Buffer 79 7f f0 43 11 eb 11 e1 80 d6 51 09 98 75 5d 10>
134
+ var string = uuid.unparse(bytes); // -> '797ff043-11eb-11e1-80d6-510998755d10'
135
+ ```
136
+
137
+ ### uuid.noConflict()
138
+
139
+ (Browsers only) Set `uuid` property back to it's previous value.
140
+
141
+ Returns the node-uuid object.
142
+
143
+ Example:
144
+
145
+ ```javascript
146
+ var myUuid = uuid.noConflict();
147
+ myUuid.v1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
148
+ ```
149
+
150
+ ## Deprecated APIs
151
+
152
+ Support for the following v1.2 APIs is available in v1.3, but is deprecated and will be removed in the next major version.
153
+
154
+ ### uuid([format [, buffer [, offset]]])
155
+
156
+ uuid() has become uuid.v4(), and the `format` argument is now implicit in the `buffer` argument. (i.e. if you specify a buffer, the format is assumed to be binary).
157
+
158
+ ### uuid.BufferClass
159
+
160
+ The class of container created when generating binary uuid data if no buffer argument is specified. This is expected to go away, with no replacement API.
161
+
162
+ ## Testing
73
163
 
74
- Open test/test.html
164
+ In node.js
75
165
 
76
- ### In node.js
166
+ ```
167
+ > cd test
168
+ > node uuid.js
169
+ ```
77
170
 
78
- > node test/test.js
171
+ In Browser
79
172
 
80
- node.js users can also run the node-uuid .vs. uuid.js benchmark:
173
+ ```
174
+ open test/test.html
175
+ ```
81
176
 
82
- > node test/benchmark.js
177
+ ### Benchmarking
83
178
 
84
- ## Performance
179
+ Requires node.js
85
180
 
86
- ### In node.js
181
+ ```
182
+ npm install uuid uuid-js
183
+ node test/benchmark.js
184
+ ```
87
185
 
88
- node-uuid is designed to be fast. That said, the target platform is node.js, where it is screaming fast. Here's what I get on my 2.66GHz Macbook Pro for the test/benchmark.js script:
186
+ For a more complete discussion of node-uuid performance, please see the `benchmark/README.md` file, and the [benchmark wiki](https://github.com/broofa/node-uuid/wiki/Benchmark)
89
187
 
90
- nodeuuid(): 1126126 uuids/second
91
- nodeuuid('binary'): 782472 uuids/second
92
- nodeuuid('binary', buffer): 2688172 uuids/second
93
- uuidjs(): 620347 uuids/second
94
- uuidjs('binary'): 1275510 uuids/second
188
+ For browser performance [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance).
95
189
 
96
- The uuidjs() entries are for Nikhil Marathe's [uuidjs module](https://bitbucket.org/nikhilm/uuidjs), and are provided for comparison. uuidjs is a wrapper around the native libuuid library.
190
+ ## Release notes
97
191
 
98
- ### In browser
192
+ v1.3.2:
193
+ * Improve tests and handling of v1() options (Issue #24)
194
+ * Expose RNG option to allow for perf testing with different generators
99
195
 
100
- node-uuid performance varies dramatically across browsers. For comprehensive test results, please [checkout the JSPerf tests](http://jsperf.com/node-uuid-performance).
196
+ v1.3:
197
+ * Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
198
+ * Support for node.js crypto API
199
+ * De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code
@@ -0,0 +1,53 @@
1
+ # node-uuid Benchmarks
2
+
3
+ ### Results
4
+
5
+ To see the results of our benchmarks visit https://github.com/broofa/node-uuid/wiki/Benchmark
6
+
7
+ ### Run them yourself
8
+
9
+ node-uuid comes with some benchmarks to measure performance of generating UUIDs. These can be run using node.js. node-uuid is being benchmarked against some other uuid modules, that are available through npm namely `uuid` and `uuid-js`.
10
+
11
+ To prepare and run the benchmark issue;
12
+
13
+ ```
14
+ npm install uuid uuid-js
15
+ node benchmark/benchmark.js
16
+ ```
17
+
18
+ You'll see an output like this one:
19
+
20
+ ```
21
+ # v4
22
+ nodeuuid.v4(): 854700 uuids/second
23
+ nodeuuid.v4('binary'): 788643 uuids/second
24
+ nodeuuid.v4('binary', buffer): 1336898 uuids/second
25
+ uuid(): 479386 uuids/second
26
+ uuid('binary'): 582072 uuids/second
27
+ uuidjs.create(4): 312304 uuids/second
28
+
29
+ # v1
30
+ nodeuuid.v1(): 938086 uuids/second
31
+ nodeuuid.v1('binary'): 683060 uuids/second
32
+ nodeuuid.v1('binary', buffer): 1644736 uuids/second
33
+ uuidjs.create(1): 190621 uuids/second
34
+ ```
35
+
36
+ * The `uuid()` entries are for Nikhil Marathe's [uuid module](https://bitbucket.org/nikhilm/uuidjs) which is a wrapper around the native libuuid library.
37
+ * The `uuidjs()` entries are for Patrick Negri's [uuid-js module](https://github.com/pnegri/uuid-js) which is a pure javascript implementation based on [UUID.js](https://github.com/LiosK/UUID.js) by LiosK.
38
+
39
+ If you want to get more reliable results you can run the benchmark multiple times and write the output into a log file:
40
+
41
+ ```
42
+ for i in {0..9}; do node benchmark/benchmark.js >> benchmark/bench_0.4.12.log; done;
43
+ ```
44
+
45
+ If you're interested in how performance varies between different node versions, you can issue the above command multiple times.
46
+
47
+ You can then use the shell script `bench.sh` provided in this directory to calculate the averages over all benchmark runs and draw a nice plot:
48
+
49
+ ```
50
+ (cd benchmark/ && ./bench.sh)
51
+ ```
52
+
53
+ This assumes you have [gnuplot](http://www.gnuplot.info/) and [ImageMagick](http://www.imagemagick.org/) installed. You'll find a nice `bench.png` graph in the `benchmark/` directory then.
@@ -0,0 +1,174 @@
1
+ #!/opt/local/bin/gnuplot -persist
2
+ #
3
+ #
4
+ # G N U P L O T
5
+ # Version 4.4 patchlevel 3
6
+ # last modified March 2011
7
+ # System: Darwin 10.8.0
8
+ #
9
+ # Copyright (C) 1986-1993, 1998, 2004, 2007-2010
10
+ # Thomas Williams, Colin Kelley and many others
11
+ #
12
+ # gnuplot home: http://www.gnuplot.info
13
+ # faq, bugs, etc: type "help seeking-assistance"
14
+ # immediate help: type "help"
15
+ # plot window: hit 'h'
16
+ set terminal postscript eps noenhanced defaultplex \
17
+ leveldefault color colortext \
18
+ solid linewidth 1.2 butt noclip \
19
+ palfuncparam 2000,0.003 \
20
+ "Helvetica" 14
21
+ set output 'bench.eps'
22
+ unset clip points
23
+ set clip one
24
+ unset clip two
25
+ set bar 1.000000 front
26
+ set border 31 front linetype -1 linewidth 1.000
27
+ set xdata
28
+ set ydata
29
+ set zdata
30
+ set x2data
31
+ set y2data
32
+ set timefmt x "%d/%m/%y,%H:%M"
33
+ set timefmt y "%d/%m/%y,%H:%M"
34
+ set timefmt z "%d/%m/%y,%H:%M"
35
+ set timefmt x2 "%d/%m/%y,%H:%M"
36
+ set timefmt y2 "%d/%m/%y,%H:%M"
37
+ set timefmt cb "%d/%m/%y,%H:%M"
38
+ set boxwidth
39
+ set style fill empty border
40
+ set style rectangle back fc lt -3 fillstyle solid 1.00 border lt -1
41
+ set style circle radius graph 0.02, first 0, 0
42
+ set dummy x,y
43
+ set format x "% g"
44
+ set format y "% g"
45
+ set format x2 "% g"
46
+ set format y2 "% g"
47
+ set format z "% g"
48
+ set format cb "% g"
49
+ set angles radians
50
+ unset grid
51
+ set key title ""
52
+ set key outside left top horizontal Right noreverse enhanced autotitles columnhead nobox
53
+ set key noinvert samplen 4 spacing 1 width 0 height 0
54
+ set key maxcolumns 2 maxrows 0
55
+ unset label
56
+ unset arrow
57
+ set style increment default
58
+ unset style line
59
+ set style line 1 linetype 1 linewidth 2.000 pointtype 1 pointsize default pointinterval 0
60
+ unset style arrow
61
+ set style histogram clustered gap 2 title offset character 0, 0, 0
62
+ unset logscale
63
+ set offsets graph 0.05, 0.15, 0, 0
64
+ set pointsize 1.5
65
+ set pointintervalbox 1
66
+ set encoding default
67
+ unset polar
68
+ unset parametric
69
+ unset decimalsign
70
+ set view 60, 30, 1, 1
71
+ set samples 100, 100
72
+ set isosamples 10, 10
73
+ set surface
74
+ unset contour
75
+ set clabel '%8.3g'
76
+ set mapping cartesian
77
+ set datafile separator whitespace
78
+ unset hidden3d
79
+ set cntrparam order 4
80
+ set cntrparam linear
81
+ set cntrparam levels auto 5
82
+ set cntrparam points 5
83
+ set size ratio 0 1,1
84
+ set origin 0,0
85
+ set style data points
86
+ set style function lines
87
+ set xzeroaxis linetype -2 linewidth 1.000
88
+ set yzeroaxis linetype -2 linewidth 1.000
89
+ set zzeroaxis linetype -2 linewidth 1.000
90
+ set x2zeroaxis linetype -2 linewidth 1.000
91
+ set y2zeroaxis linetype -2 linewidth 1.000
92
+ set ticslevel 0.5
93
+ set mxtics default
94
+ set mytics default
95
+ set mztics default
96
+ set mx2tics default
97
+ set my2tics default
98
+ set mcbtics default
99
+ set xtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0
100
+ set xtics norangelimit
101
+ set xtics ()
102
+ set ytics border in scale 1,0.5 mirror norotate offset character 0, 0, 0
103
+ set ytics autofreq norangelimit
104
+ set ztics border in scale 1,0.5 nomirror norotate offset character 0, 0, 0
105
+ set ztics autofreq norangelimit
106
+ set nox2tics
107
+ set noy2tics
108
+ set cbtics border in scale 1,0.5 mirror norotate offset character 0, 0, 0
109
+ set cbtics autofreq norangelimit
110
+ set title ""
111
+ set title offset character 0, 0, 0 font "" norotate
112
+ set timestamp bottom
113
+ set timestamp ""
114
+ set timestamp offset character 0, 0, 0 font "" norotate
115
+ set rrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] )
116
+ set autoscale rfixmin
117
+ set autoscale rfixmax
118
+ set trange [ * : * ] noreverse nowriteback # (currently [-5.00000:5.00000] )
119
+ set autoscale tfixmin
120
+ set autoscale tfixmax
121
+ set urange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] )
122
+ set autoscale ufixmin
123
+ set autoscale ufixmax
124
+ set vrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] )
125
+ set autoscale vfixmin
126
+ set autoscale vfixmax
127
+ set xlabel ""
128
+ set xlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate
129
+ set x2label ""
130
+ set x2label offset character 0, 0, 0 font "" textcolor lt -1 norotate
131
+ set xrange [ * : * ] noreverse nowriteback # (currently [-0.150000:3.15000] )
132
+ set autoscale xfixmin
133
+ set autoscale xfixmax
134
+ set x2range [ * : * ] noreverse nowriteback # (currently [0.00000:3.00000] )
135
+ set autoscale x2fixmin
136
+ set autoscale x2fixmax
137
+ set ylabel ""
138
+ set ylabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
139
+ set y2label ""
140
+ set y2label offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
141
+ set yrange [ 0.00000 : 1.90000e+06 ] noreverse nowriteback # (currently [:] )
142
+ set autoscale yfixmin
143
+ set autoscale yfixmax
144
+ set y2range [ * : * ] noreverse nowriteback # (currently [0.00000:1.90000e+06] )
145
+ set autoscale y2fixmin
146
+ set autoscale y2fixmax
147
+ set zlabel ""
148
+ set zlabel offset character 0, 0, 0 font "" textcolor lt -1 norotate
149
+ set zrange [ * : * ] noreverse nowriteback # (currently [-10.0000:10.0000] )
150
+ set autoscale zfixmin
151
+ set autoscale zfixmax
152
+ set cblabel ""
153
+ set cblabel offset character 0, 0, 0 font "" textcolor lt -1 rotate by -270
154
+ set cbrange [ * : * ] noreverse nowriteback # (currently [8.98847e+307:-8.98847e+307] )
155
+ set autoscale cbfixmin
156
+ set autoscale cbfixmax
157
+ set zero 1e-08
158
+ set lmargin -1
159
+ set bmargin -1
160
+ set rmargin -1
161
+ set tmargin -1
162
+ set pm3d explicit at s
163
+ set pm3d scansautomatic
164
+ set pm3d interpolate 1,1 flush begin noftriangles nohidden3d corners2color mean
165
+ set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB
166
+ set palette rgbformulae 7, 5, 15
167
+ set colorbox default
168
+ set colorbox vertical origin screen 0.9, 0.2, 0 size screen 0.05, 0.6, 0 front bdefault
169
+ set loadpath
170
+ set fontpath
171
+ set fit noerrorvariables
172
+ GNUTERM = "aqua"
173
+ plot 'bench_results.txt' using 2:xticlabel(1) w lp lw 2, '' using 3:xticlabel(1) w lp lw 2, '' using 4:xticlabel(1) w lp lw 2, '' using 5:xticlabel(1) w lp lw 2, '' using 6:xticlabel(1) w lp lw 2, '' using 7:xticlabel(1) w lp lw 2, '' using 8:xticlabel(1) w lp lw 2, '' using 9:xticlabel(1) w lp lw 2
174
+ # EOF
@@ -0,0 +1,34 @@
1
+ #!/bin/bash
2
+
3
+ # for a given node version run:
4
+ # for i in {0..9}; do node benchmark.js >> bench_0.6.2.log; done;
5
+
6
+ PATTERNS=('nodeuuid.v1()' "nodeuuid.v1('binary'," 'nodeuuid.v4()' "nodeuuid.v4('binary'," "uuid()" "uuid('binary')" 'uuidjs.create(1)' 'uuidjs.create(4)' '140byte')
7
+ FILES=(node_uuid_v1_string node_uuid_v1_buf node_uuid_v4_string node_uuid_v4_buf libuuid_v4_string libuuid_v4_binary uuidjs_v1_string uuidjs_v4_string 140byte_es)
8
+ INDICES=(2 3 2 3 2 2 2 2 2)
9
+ VERSIONS=$( ls bench_*.log | sed -e 's/^bench_\([0-9\.]*\)\.log/\1/' | tr "\\n" " " )
10
+ TMPJOIN="tmp_join"
11
+ OUTPUT="bench_results.txt"
12
+
13
+ for I in ${!FILES[*]}; do
14
+ F=${FILES[$I]}
15
+ P=${PATTERNS[$I]}
16
+ INDEX=${INDICES[$I]}
17
+ echo "version $F" > $F
18
+ for V in $VERSIONS; do
19
+ (VAL=$( grep "$P" bench_$V.log | LC_ALL=en_US awk '{ sum += $'$INDEX' } END { print sum/NR }' ); echo $V $VAL) >> $F
20
+ done
21
+ if [ $I == 0 ]; then
22
+ cat $F > $TMPJOIN
23
+ else
24
+ join $TMPJOIN $F > $OUTPUT
25
+ cp $OUTPUT $TMPJOIN
26
+ fi
27
+ rm $F
28
+ done
29
+
30
+ rm $TMPJOIN
31
+
32
+ gnuplot bench.gnu
33
+ convert -density 200 -resize 800x560 -flatten bench.eps bench.png
34
+ rm bench.eps
@@ -0,0 +1,84 @@
1
+ try {
2
+ var nodeuuid = require('../uuid');
3
+ } catch (e) {
4
+ console.error('node-uuid require failed - skipping tests');
5
+ }
6
+
7
+ try {
8
+ var uuid = require('uuid');
9
+ } catch (e) {
10
+ console.error('uuid require failed - skipping tests');
11
+ }
12
+
13
+ try {
14
+ var uuidjs = require('uuid-js');
15
+ } catch (e) {
16
+ console.error('uuid-js require failed - skipping tests');
17
+ }
18
+
19
+ var N = 5e5;
20
+
21
+ function rate(msg, t) {
22
+ console.log(msg + ': ' +
23
+ (N / (Date.now() - t) * 1e3 | 0) +
24
+ ' uuids/second');
25
+ }
26
+
27
+ console.log('# v4');
28
+
29
+ // node-uuid - string form
30
+ if (nodeuuid) {
31
+ for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4();
32
+ rate('nodeuuid.v4() - using node.js crypto RNG', t);
33
+
34
+ for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4({rng: nodeuuid.mathRNG});
35
+ rate('nodeuuid.v4() - using Math.random() RNG', t);
36
+
37
+ for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary');
38
+ rate('nodeuuid.v4(\'binary\')', t);
39
+
40
+ var buffer = new nodeuuid.BufferClass(16);
41
+ for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v4('binary', buffer);
42
+ rate('nodeuuid.v4(\'binary\', buffer)', t);
43
+ }
44
+
45
+ // libuuid - string form
46
+ if (uuid) {
47
+ for (var i = 0, t = Date.now(); i < N; i++) uuid();
48
+ rate('uuid()', t);
49
+
50
+ for (var i = 0, t = Date.now(); i < N; i++) uuid('binary');
51
+ rate('uuid(\'binary\')', t);
52
+ }
53
+
54
+ // uuid-js - string form
55
+ if (uuidjs) {
56
+ for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(4);
57
+ rate('uuidjs.create(4)', t);
58
+ }
59
+
60
+ // 140byte.es
61
+ for (var i = 0, t = Date.now(); i < N; i++) 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(s,r){r=Math.random()*16|0;return (s=='x'?r:r&0x3|0x8).toString(16)});
62
+ rate('140byte.es_v4', t);
63
+
64
+ console.log('');
65
+ console.log('# v1');
66
+
67
+ // node-uuid - v1 string form
68
+ if (nodeuuid) {
69
+ for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1();
70
+ rate('nodeuuid.v1()', t);
71
+
72
+ for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary');
73
+ rate('nodeuuid.v1(\'binary\')', t);
74
+
75
+ var buffer = new nodeuuid.BufferClass(16);
76
+ for (var i = 0, t = Date.now(); i < N; i++) nodeuuid.v1('binary', buffer);
77
+ rate('nodeuuid.v1(\'binary\', buffer)', t);
78
+ }
79
+
80
+ // uuid-js - v1 string form
81
+ if (uuidjs) {
82
+ for (var i = 0, t = Date.now(); i < N; i++) uuidjs.create(1);
83
+ rate('uuidjs.create(1)', t);
84
+ }
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name" : "node-uuid",
3
- "description" : "Simple, fast generation of RFC4122(v4) UUIDs.",
3
+ "description" : "Rigorous implementation of RFC4122 (v1 and v4) UUIDs.",
4
4
  "url" : "http://github.com/broofa/node-uuid",
5
5
  "keywords" : ["uuid", "guid", "rfc4122"],
6
6
  "author" : "Robert Kieffer <robert@broofa.com>",
7
- "contributors" : [],
7
+ "contributors" : [
8
+ {"name": "Christoph Tavan <dev@tavan.de>", "github": "https://github.com/ctavan"}
9
+ ],
8
10
  "dependencies" : [],
9
11
  "lib" : ".",
10
12
  "main" : "./uuid.js",
11
- "version" : "1.2.0"
13
+ "version" : "1.3.3"
12
14
  }