# NAME Data::STUID - Yet Another Unique ID Generator # SYNOPSIS # see Data::STUID::Server # Data::STUID::Client # Data::STUID::Generator # DESCRIPTION Minimalistic unique ID generator. Main logic ported from STF (http://github.com/stf-storage/stf). The generated IDs are always in 64bit range, and can be ordered sequentially, so it's easy to use for sort operations. # SAMPLE SERVER SETUP For programmatic usage, see [Data::STUID::Server](http://search.cpan.org/perldoc?Data::STUID::Server) - Install dependencies You can do the regular perl Build.PL ./Build ./Build install and then execute `stuid-server` directly, but you could also use `carton`. install carton >= 0.9.10, and cpanm >= 1.60002. cd /path/to/Data-STUID carton install # optionally, skip tests: 'PERL_CPANM_OPT=-n carton install' - Execute It! Plain usage would be: stuid-server --host_id=1 With carton: carton exec -I/path/to/Data-STUID/lib -- \ /path/to/Data-STUID/script/stuid-server \ --host_id=1 It might be easier if you wrap the above in a shell script, say server.sh: #!/bin/sh STUID_HOME=/path/to/Data-STUID exec \ carton exec -I$STUID_HOME/lib -- \ $STUID_HOME/script/stuid-server $@ Then execute it as: ./server.sh --host_id=1 Note that you need pass a unique `host_id` parameter to each distinct STUID server instance - Tweaks `Data::STUID::Server` is a subclass of [Net::Server::PreFork](http://search.cpan.org/perldoc?Net::Server::PreFork). You should be able to pass parameters that the parent class accepts. If the script doesn't, send me a pullreq! # SAMPLE CLIENT SETUP For programmatic usage, see [Data::STUID::Client](http://search.cpan.org/perldoc?Data::STUID::Client) - Install dependencies See ["SAMPLE SERVER SETUP"](#SAMPLE SERVER SETUP) - Execute it! Plain usage would be: stuid-client --server=127.0.0.1:9001 --server=127.0.0.1:9002 ... carton exec -I/path/to/Data-STUID/lib -- \ /path/to/Data-STUID/script/stuid-client \ --server=127.0.0.1:9001 --server=127.0.0.1:9002 ... # AUTHOR Daisuke Maki ``