I've finished the port of boost.uuid to D and I'd hope to get some initial feedback.
Quoting the module documentation: This is a port of boost.uuid from the boost project with some minor additions and API changes for a more D-like API. A UUID, or Universally unique identifier, is intended to uniquely identify information in a distributed environment without significant central coordination. It can be used to tag objects with very short lifetimes, or to reliably identify very persistent objects across a network [...] Documentation: http://dl.dropbox.com/u/24218791/d/src/uuid.html Source Code: https://github.com/jpf91/phobos/blob/std.uuid/std/uuid.rl https://github.com/jpf91/phobos/blob/std.uuid/std/uuid.d There's one special thing about this module: It uses the ragel (http://www.complang.org/ragel/) state machine compiler. I hope this is not a problem for phobos, ragel doesn't introduce any runtime dependencies and has no effect on licensing. There's also no need to integrate ragel in the build process. We can publish a pregenerated .d file, which should be updated manually whenever changes to uuid.rl are made. This module also depends on Piotr Szturmaj's crypto library to generate level 3&5 UUIDS. The code for this is written, but wouldn't be included in phobos until official SHA1 and MD5 implementations are in phobos. Swapping the MD5/SHA1 implementations against a different implementation should be very easy. Some things I'd especially like feedback for: * I'd really like to get suggestions for type/function names. Should the UUID struct be UUID/uuid/Uuid ? * the names nameMD5UUID/nameSHAUUID look especially ugly. ideas? * comments on typos/language etc
