NEW cuid library stack

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

NEW cuid library stack

JJS via use-livecode
I created a new library stack to create cuid compliant unique ids in Livecode.

What the heck is a cuid you ask? Well, in a nutshell, a cuid is a "portable and sequentially-ordered unique identifier designed for horizontal scalability and speed". You can use a cuid just like you would a UUID.

Where are cuid’s used? I ran across them when working on a couple GraphQL projects. The main reason I created the library is so Livecode apps I work on can play nicely with the GraphQL backend that uses cuid’s for record ids.

There is a performance hit when using this library compared to using Livecode’s built in UUID function. On my old mac book, 10,000 cuids can be generated typically in under 500ms. For me it is plenty fast enough (typically you create 1 cuid at a time).

I did come across one limitation in Livecode that made me think a bit — cuid’s require the current milliseconds since the start of time in base 36. The current milliseconds is too large an integer for Livecode’s base conversion function but I got it worked out. I suspect this logic may be a prime candidate for optimization (see private function _base36convert in library).

Of course this work is open sourced and under MIT license. Pull requests welcomed!!!
https://github.com/bhall2001/cuid.livecodescript <https://github.com/bhall2001/cuid.livecodescript>

Enjoy!

Bob Hall
Manchester, NH
_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
Reply | Threaded
Open this post in threaded view
|

Re: NEW cuid library stack

JJS via use-livecode
Nice work, Bob - thanks!  And thanks for the MIT License.

And super-thanks for including this link in your Read Me - very helpful
for understanding the goals and design of CUIDs:

http://usecuid.org/

--
  Richard Gaskin
  Fourth World Systems



Bob Hall wrote:
 > I created a new library stack to create cuid compliant unique ids in
 > Livecode.
 >
 > What the heck is a cuid you ask? Well, in a nutshell, a cuid is a
 > "portable and sequentially-ordered unique identifier designed for
 > horizontal scalability and speed". You can use a cuid just like you
 > would a UUID.
 >
 > Where are cuid’s used? I ran across them when working on a couple
 > GraphQL projects. The main reason I created the library is so Livecode
 > apps I work on can play nicely with the GraphQL backend that uses
 > cuid’s for record ids.
 >
 > There is a performance hit when using this library compared to using
 > Livecode’s built in UUID function. On my old mac book, 10,000 cuids
 > can be generated typically in under 500ms. For me it is plenty fast
 > enough (typically you create 1 cuid at a time).
 >
 > I did come across one limitation in Livecode that made me think a bit
 > — cuid’s require the current milliseconds since the start of time in
 > base 36. The current milliseconds is too large an integer for
 > Livecode’s base conversion function but I got it worked out. I suspect
 > this logic may be a prime candidate for optimization (see private
 > function _base36convert in library).
 >
 > Of course this work is open sourced and under MIT license. Pull
 > requests welcomed!!!
 > https://github.com/bhall2001/cuid.livecodescript 
<https://github.com/bhall2001/cuid.livecodescript>
 >
 > Enjoy!
 >
 > Bob Hall
 > Manchester, NH


_______________________________________________
use-livecode mailing list
[hidden email]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode