id_gen 0.7.4 id_gen: ^0.7.4 copied to clipboard
A standardized and well-tested set of IDs generators: globally unique, readable, time-dependency, transitive, incremental, decremental IDs.
ID Generators #
The standardized, easy-to-use and well-tested set for generate identifiers: globally unique, readable, time-dependency, transitive, incremental, decremental IDs. Feel free to use it in your awesome project.
Share some ❤️ and ⭐ repo to support the project.
Platforms #
Android | iOS | Linux | MacOS | Web | Windows |
---|---|---|---|---|---|
✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Usage #
Generate 4 UUIDs #
About UUID (online generator): https://uuidgenerator.net
print([for (var i = 0; i < 4; ++i) genUuid]);
[4c48329b-2c1b-4534-b649-1a462626bcd4, a1afafe2-d57a-46ae-9f27-7e42dc936475, 283ae055-cf4e-4d6d-b505-e2a7d60806d2, 843832d1-d0f0-48e7-8a61-3aa151c2103b]
Generate HID from language #
Supported languages:
- Belarusian
- English
- Ukrainian
const gen = HumanIdGen(options: HumanIdGenOptions(lowerCase: true));
final hid = gen.get('Тема статті чи назва курсу');
print(hid);
tema-stati-chy-nazva-kursu
Generate Transit Integer ID #
print([for (var i = 0; i < 4; ++i) genTransitId]);
[1, 2, 3, 4]
Generate Time Integer ID #
// milliseconds
print(genTimeId);
// microseconds
print(genTimeIdMicro);
1705954581187
1705954581188687
Note that second ID does not fit into 53 bits (the size of a IEEE double). A JavaScript number is not able to hold this value.
Add HID and UID to Any Class #
class Quant with HasStringIdMix {
Quant({String? hid, String? uid}) {
this.hid = hid;
this.uid = uid;
}
}
print(Quant().id);
print(Quant(hid: 'aerwyna').id);
92e6ee3e-537a-4dd3-b4e9-06b8fd366469
aerwyna
Welcome to Inspiration #
Requests and suggestions are warmly welcome.
Contributions are what make the open-source community such a great place to learn, create, and be inspired.
If this is your first contribution, I'll leave you with some of the best links I've found: they will help you get started or/and become even more efficient.
- Guide to Making a First Contribution. You will find the guide in your native language.
- How to Contribute to Open Source. Longread for deep diving for first-timers and for veterans.
- Summer Guide from Google.
The package IdGen is open-source, stable and well-tested. Development happens on GitHub. Feel free to report issues or create a pull-request there.
General questions are best asked on StackOverflow.
And here is a curated list of how you can help:
- Report parts of the documentation that are unclear.
- Fix typos/grammar mistakes.
- Update the documentation or add examples.
- Report bugs and scenarios that are difficult to implement.
- Implement new features by making a pull-request (look below).
TODO (perhaps) #
Once you start using the IdGen, it will become easy to choose the functionality to contribute. But if you already get everything you need from this package but have some free time, let me write here what I have planned:
- Feautures for this package into README.
- Example of HID generation in your own language.
- More predefined languages. See https://github.com/bengourley/slugg/blob/master/slugg.js
It's just a habit of mine: writing down ideas that come to mind while working on a project. I confess that I rarely return to these notes. But now, hopefully, even if you don't have an idea yet, the above notes will help you choose the suitable "feature" and become a contributor to the open-source community.
Created with ❤️