Codync
A free, open-source 1:1 alternative to Grok Bot and Muse. Message Claude Code, Codex, Cursor and 40+ coding agents as persistent bots from your iPhone, Mac or Linux desktop. Group chats, threads, appr
Postal addresses with real streets by place, laid out in each country's format. C++23, header-only, deterministic.
Translation pending
Developer toolsC++ · PythonGitHub @dasmigOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Requires C++23 (e.g.,
-std=c++23for GCC/Clang,/std:c++latestfor MSVC).
API Reference · Usage Guide · Data and Method · Releases
Postal addresses with real streets by place, laid out in each country's format.
Real Streets by Place. A place's own streets, drawn by how many addresses they have (OpenStreetMap), with a house number in the street's observed range; places without street data get a composed street (Rue de la Paix, Hauptstraße) instead.
Every Country's Layout. 250 territories laid out in their own order (12 Rua Augusta / 1100-053 Lisbon, Kirchstraße 84 / 10886 Berlin, 84 Elm Street / Laramie, WY 82071), with the number before or after the street as the country writes it, postcodes in the country's format and units in the country's style.
Streets and Postcodes on Their Own. get_street and get_postcode draw from the same streams as get_address, so they return the street and postcode of the address with the same seed.
Latin Layout and Japan. address_request::script selects the Latin-script layout where a country has one; Japanese addresses are written large to small with block numbers.
Anchored to a City. Pass a city drawn elsewhere (for example by city-generator) and the address is in it; the places are the same GeoNames places city-generator uses.
Deterministic Seeding. Per-call get_address(request, seed) for reproducible results, and address::seed() for replaying a previous generation with the same request and data.
Batch Generation. Generate thousands of results from one seed, on several threads with the same output for any thread count, optionally unique by a key, and stream them as JSON Lines or CSV (see the usage guide).
Identical Everywhere. A seed gives the same result on every compiler, standard library and CPU (GCC, Clang, MSVC, Emscripten; x86-64 and ARM64), checked by known-answer tests.
Extensible Data. Load your own TSV layers on top of the shipped data to add, change or remove places, streets or postcodes (extend()), checked before they are applied.
JSON and Replay. to_json() on every result, and a signature() recording the seed and the data it came from.
Compiled-in Data. Define DASMIG_ADDRESS_EMBED to build the tier into the program, for WebAssembly and other builds without files.
addressgen.hpp is the library released here. Keep core.hpp and the core/ directory (dasmig-core) in the same directory. Add
#include <dasmig/addressgen.hpp>
to the files you want to use it in, and supply the resources folder (or define DASMIG_ADDRESS_EMBED).
#include <dasmig/addressgen.hpp>
#include <iostream>
auto& gen = dasmig::adg::instance(); // loads the lite tier
auto v = gen.get_address(dasmig::address_request{});
std::cout << v << '
'; // 23 Largo do Toural, 4800-019 Guimarães
std::cout << v.to_json() << '
'; // {"country_code":"PT","city":"Guimarães",...,"signature":{...}}
// In a country, or in a city drawn elsewhere.
dasmig::address_request r;
r.country = "FR";
for (const auto& line : gen.get_address(r).lines()) std::cout << line << '
';
r.place = dasmig::place_ref{"Lisbon", ""};
// The same seed gives the same result everywhere.
auto again = gen.get_address(dasmig::address_request{}, v.seed());
See the usage guide for everything else.
make # example
make test # tests
make bench # benchmarks, results in build/bench.tsv
make test-embed # tests with the lite tier compiled in
make coverage # code coverage
make lint # clang-tidy
make docs # API docs
make embed # regenerate dasmig/addressgen_data.hpp from resources/lite
Tested with:
-std=c++23)-std=c++23)/std:c++latest)| Dependency | Version | Bundled | Purpose |
|---|---|---|---|
| dasmig-core | 1.4 | Yes (core.hpp, core/) | Platform-independent random engine and distributions, data layers, JSON |
| Catch2 | 3.x | Yes (amalgamated) | Unit testing |
| Library | Description |
|---|---|
| biodata-generator | Procedural human physical characteristics |
| birth-generator | Demographically plausible birthdays |
| city-generator | Weighted city selection by population |
| country-generator | Weighted country selection by population |
| device-generator | Devices, browsers, user agents and IP addresses that fit together |
| email-generator | Email addresses in each country's style |
| entity-generator | ECS-based entity generation |
| interest-generator | Religion, hobbies and favourite media by country, age and sex |
| name-generator | Culturally appropriate full names |
| nickname-generator | Gamer-style nicknames |
| occupation-generator | Employment status, education and occupation by country, age and sex |
| persona-generator |
This library is released under the MIT License.
MIT License
Copyright (c) 2026 Diego Dasso Migotto
liteMulti-Instance Support. Construct independent adg instances with their own data and random engine.
| Complete characters composed from the other generators |
| phone-generator | Phone numbers valid in each country's numbering plan |
| relationship-generator | Families around a person: parents, siblings, partners and children |
| trait-generator | Personality traits with conflicts, synergies and Big Five axes |
| user-generator | Complete user records: account, username, email, phone and address |