Skip to content

Instantly share code, notes, and snippets.

@jrus
Created July 29, 2012 09:26
Show Gist options
  • Save jrus/3197011 to your computer and use it in GitHub Desktop.
Save jrus/3197011 to your computer and use it in GitHub Desktop.
quick lua implementation of "random" UUID
local random = math.random
local function uuid()
local template ='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
return string.gsub(template, '[xy]', function (c)
local v = (c == 'x') and random(0, 0xf) or random(8, 0xb)
return string.format('%x', v)
end)
end
@lions-tech
Copy link

@jrus Thank you for the snippet.

your can use this seed to avoid same uuid math.randomseed(tonumber(tostring(os.time()):reverse():sub(1, 9)))

I'd like to note, that this does not seem to work with lua 5.2.4. for i=1,10 do print(uuid()) end will print 10 times the same UUID. However, without the custom seed, it works perfectly fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment