Sno Versions Save

Compact, sortable and fast unique IDs with embedded metadata.

v1.2.1

2 years ago

Fixes

  • Go 1.17: ostime / runtime.walltime linking error (#4)

v1.2.0

3 years ago

Fixes

  • Invalid CPUID calls on amd64 causing runtime detection of SSE2 to incorrectly fail (#1, #3)

Changes

  • MaxPartition (const uint16) is now public (f983e7d5e5e3178bfae67d56188a331ab214528d);

Performance

  • Small reduction in the memory size of Generators (816e22cc06c34a64e03552bb8d6eb8251dfbe11e)
  • Minor speedups in generation due to a refactor of internal time sourcing (9e60f168dfab04c3b568307b483dff37e974d86a, 0b6f5dc600cff5ed339ad440c3a16481e1b104d9 and others)
  • Minor speedups in JSON encoding (13589aa8c54729743763fb16ff79d60c17af3717) and decoding in general (22a9c84ebe5fc3e177a3338f4e6881375a5f71b1)

v1.1.0

4 years ago

Fixes

  • Encoding on non-amd64 architectures (2fb605da78cc9ca05fb6b562a28d7a479b0bd647)

Changes

  • Removed dependency on crypto/rand (d122e968ed5ff6adf38fac0083e53a389cda4162) It may have been misleading, given there is nothing cryptographically secure about snos. Generators created without a Snapshot, eg. without being given a Partition, now receive a Partition monotonically increasing from a time based seed created at init time. This allows for the creation of 65355 generators guaranteed to not have colliding Partitions during the lifetime of the process, when they are not manually given.
    This does not affect Generators created from Snapshots where the Partitions are managed by the user.
    The change additionally results in reduced binary sizes.

Performance

  • ID generation is now slightly faster using compiler optimized stores and other minor changes (178e318cd44eb96d696adeff4e24cc65cab28a63, 6653737197326fdec9e79db7e85975401bb4e80f)
  • ID.Time() and ID.Timestamp() are now slightly faster using compiler optimized loads (588bb000fb612cd4bf2d0846b9529418b8381d51)

v1.0.0

4 years ago