Blame view

node_modules/xxhashjs/README.md 2.54 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
  # Javascript implementation of xxHash
  
  ## Synopsis
  
  xxHash is a very fast hashing algorithm (see the details [here](https://code.google.com/p/xxhash/)). xxhashjs is a Javascript implementation of it, written in 100% Javascript. Although not as fast as the C version, it does perform pretty well given the current Javascript limitations in handling unsigned 32 bits integers.
  
  
  ## Installation
  
  In nodejs:
  
      npm install xxhashjs
  
  In the browser, include the following, and access the constructor with _XXH_:
  
  ```javascript
  <script src="/your/path/to/xxhash.js"></script>
  ```
  
  
  ## Examples
  
  * In one step:
  ```javascript
  var h = XXH.h32( 'abcd', 0xABCD ).toString(16)	// seed = 0xABCD
  ```
  > 0xCDA8FAE4
  
  * In several steps (useful in conjunction of NodeJS streams):
  ```javascript
  var H = XXH.h32( 0xABCD )	// seed = 0xABCD
  var h = H.update( 'abcd' ).digest().toString(16)
  ```
  > 0xCDA8FAE4
  
  * More examples in the examples directory:
  	* Compute xxHash from a file data
  	* Use xxHashjs in the browser
  
  
  ## Usage
  
  * XXH makes 2 functions available for 32 bits XXH and 64 bits XXH respectively, with the same signature:
  
  	* XXH.h32
  	* XXH.h64
  
  * In one step:
  `XXH.h32(<data>, <seed>)`
  The data can either be a string, an ArrayBuffer or a NodeJS Buffer object.
  The seed can either be a number or a UINT32 object.
  
  * In several steps:
  	* instantiate a new XXH object H:
  `XXH.h32(<seed>)` or `XXH.h32()`
  The seed can be set later on with the `init` method
  
  	* add data to the hash calculation:
  `H.update(<data>)`
  
  	* finish the calculations:
  `H.digest()`
  
  The object returned can be converted to a string with `toString(<radix>)` or a number `toNumber()`.
  Once `digest()` has been called, the object can be reused. The same seed will be used or it can be changed with `init(<seed>)`.
  
  
  ## Methods
  
  * `XXH.h32()`
  	* `.init(<seed>)`
  	Initialize the XXH object with the given seed. The seed can either be a number or a UINT32 object.
  	* `.update(<data>)`
  	Add data for hashing. The data can either be a string, an ArrayBuffer or a NodeJS Buffer object.
  
  * `digest()` (_UINT32_)
  	Finalize the hash calculations and returns an UINT32 object. The hash value can be retrieved with toString(<radix>).
  
  * `XXH.h64()`
  	* `.init(<seed>)`
  	Initialize the XXH object with the given seed. The seed can either be a number or a UINT64 object.
  	* `.update(<data>)`
  	Add data for hashing. The data can either be a string, an ArrayBuffer or a NodeJS Buffer object.
  	* `.digest()` (_UINT64_)
  	Finalize the hash calculations and returns an UINT64 object. The hash value can be retrieved with toString(<radix>).
  
  
  ## License
  
  MIT