31 Commits

Author SHA1 Message Date
Nishaad Ajani
1c6d654675 Update to avoid breaking the existing API 2019-04-11 11:17:23 +08:00
Nishaad Ajani
a3f3d0ff71
Merge branch 'master' into monotonic_clock 2019-04-10 17:14:22 +08:00
Nishaad Ajani
55825bae4b Bug fix and optimization
* Fix for default Epoch to use monotonic clock.
* Using common case optimization in the time pkg.
2019-04-10 17:02:30 +08:00
Bruce Marriner
20ab5dc6a4 Deprecate several global variables
This allows better data race protection and makes it more possible to
have multi nodes running on the same program with different options. A
temp global mutex was added to protect data races caused by NewNode
until the deprecated variables are removed. fixed #15
2019-04-10 01:37:32 +00:00
Bruce Marriner
272c8fb215 👌Linting 2019-04-10 01:12:21 +00:00
Nishaad Ajani
2983bd9d27 Saving time as a duration in Node 2019-04-03 14:57:50 +08:00
Nishaad Ajani
0685b6ac31
Rounding time to nearest millisecond 2019-04-03 14:23:35 +08:00
Nishaad Ajani
af41c88b24 code cleanup 2019-03-15 13:10:57 +08:00
Nishaad Ajani
564a60a44c Use monotonic clock if available from the package runtime 2019-03-15 12:46:51 +08:00
龚尚
c64f7c8e01
Int64 to string. 2018-04-07 14:51:49 +08:00
龚尚
4ca43961f4
Update error log for wrong node id.
When custom NodeBits was set, the node number may bigger than 1023.
2018-04-07 14:46:40 +08:00
Bruce Marriner
a685984f2e Allow custom NodeBits and StepBits to be set.
You can now set the snowflake.NodeBits or snowflake.StepBits to
custom values.  Please keep in mind you have a total of 22 bits
available to use between these two values.  Setting these to
inappropriate values may break things.  So take care to understand
what you're doing here.

This is not the best way of doing this but it does not break
API compatibility with existing users of this package. I will
release a version 2 of this package which will implement this
feature better.
2018-03-19 21:07:06 +00:00
Bruce
07b209d699
Merge pull request #10 from freman/master
Use constants for bits, for easier changing
2018-03-19 15:35:01 -05:00
Bruce Marriner
0516e7e5cf Added Base32 and ParseBase32 methods.
These methods are nearly identical to the base58 methods, except that
these use the z-base-32 character set.
2018-03-12 20:56:32 +00:00
Bruce Marriner
812a8db720 Hide node Mutex 2018-02-01 01:25:24 +00:00
Shannon Wynter
3a07db85c1 Use constants for bits, for easier changing 2017-10-01 22:07:22 +10:00
Connor Peet
d3bf1ae440
Fix panic during UnmarshalJSON 2017-06-16 09:02:47 -07:00
Bruce Marriner
734cbe306e Added Base58 encoder/decoder 2017-02-21 09:58:29 -06:00
Connor Peet
95d961a628
Add a method to encode the snowflake as a byte slice 2016-07-26 11:35:39 -07:00
zeroZshadow
8abf09e1ce Allocate the maximum in 1 go for marshaling 2016-06-11 04:20:04 +02:00
zeroZshadow
bb0fb2c0f5 Fix UnmarshalJSON benchmark
Optimize MarshalJSON a little more
2016-06-11 03:48:54 +02:00
Bruce Marriner
c676f9e9ea Correct node error. It's 0-1023! 2016-06-10 18:54:48 -05:00
Bruce Marriner
00c61c48d0 Use nodeShift instead of 12. 2016-06-10 18:51:24 -05:00
Bruce Marriner
94a47d42a7 Don't defer.
This dropped (on my system) the Generate benchmark from about
285-330ns/op down to 244ns/op.  Yay!
2016-06-10 18:20:30 -05:00
zeroZshadow
7c362b8bf3 oops, left some experiment stuff in 2016-06-10 20:35:59 +02:00
zeroZshadow
d8933e1ea5 Added tests for MarshalJSON and UnmarshalJSON
Reduced allocation of MarshalJSON from 65 to 40 B/op
2016-06-10 20:33:36 +02:00
Bruce Marriner
348dc1e55f Lint. 2016-06-04 15:52:39 -05:00
Bruce Marriner
db0acce1d0 Linting, Optimizations, Cleanup, More Benchmarks. 2016-06-04 15:50:03 -05:00
Bruce Marriner
0fdfe21511 Removed http.Handler interface
Including this added 60KB to the compiled library which I do not think
is worth it just to include a helper function consisting of about 4
lines of code.
2016-06-01 16:58:13 -05:00
Bruce Marriner
bdcd2f75e6 Added http.Handler interface 2016-06-01 16:49:10 -05:00
Bruce Marriner
bf4c51fc2b Rename to snowflake 2016-06-01 16:12:53 -05:00