https://github.com/tsinis/sealed_world
Dart-written, Flutter-powered, and ISO-backed ecosystem for the world's data in the form of compile-time, tree-shakable constant classes with a sealed origin 🌍
https://github.com/tsinis/sealed_world
countries country-flags currencies dart declarative-country-flags declarative-flags flags flutter iso iso-15924 iso-3166 iso-4217 iso-639 languages scripts
Last synced: about 2 months ago
JSON representation
Dart-written, Flutter-powered, and ISO-backed ecosystem for the world's data in the form of compile-time, tree-shakable constant classes with a sealed origin 🌍
- Host: GitHub
- URL: https://github.com/tsinis/sealed_world
- Owner: tsinis
- License: mit
- Created: 2023-01-02T19:03:14.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-08-24T09:56:59.000Z (about 2 months ago)
- Last Synced: 2025-08-24T15:46:26.043Z (about 2 months ago)
- Topics: countries, country-flags, currencies, dart, declarative-country-flags, declarative-flags, flags, flutter, iso, iso-15924, iso-3166, iso-4217, iso-639, languages, scripts
- Language: Dart
- Homepage: https://tsin.is/sealed_world/
- Size: 312 MB
- Stars: 54
- Watchers: 2
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: .github/readme.md
- Contributing: .github/contributing.md
- License: LICENSE
- Code of conduct: .github/code_of_conduct.md
- Codeowners: .github/CODEOWNERS
- Security: .github/security.md
Awesome Lists containing this project
README
[](https://www.codefactor.io/repository/github/tsinis/sealed_world)
[](https://app.codecov.io/github/tsinis/sealed_world/flags)
[](https://coderabbit.ai)
[](https://dcm.dev)
[](https://github.com/tsinis/sealed_world/actions/workflows/verify_packages.yaml)
[](https://github.com/tsinis/sealed_world/commits)
[](https://github.com/tsinis/sealed_world/stargazers)
[](https://opensource.org/licenses/MIT)## Sealed World
A pure Dart, fully tested and ISO-driven ecosystem for the world's data in the form of compile-time, tree-shakable constant classes with a sealed origin.
[](https://codespaces.new/tsinis/sealed_world?hide_repo_select=true&ref=main)
![]()
> [!TIP]
> Flutter packages use **world** prefix, Dart packages use **sealed** prefix for core functionality and **l10n** prefix for localization maps.| Package | SDK | Stand-alone | Description | Pub |
| ------------------------------------------------------------------------------------------------ | ----------- | ------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| [world_countries](https://github.com/tsinis/sealed_world/tree/main/packages/world_countries) | **Flutter** | No | Pickers and APIs for typed localizations | [](https://pub.dev/packages/world_countries) |
| [world_flags](https://github.com/tsinis/sealed_world/tree/main/packages/world_flags) | **Flutter** | No | Country flags built with CustomPainters | [](https://pub.dev/packages/world_flags) |
| [sealed_countries](https://github.com/tsinis/sealed_world/tree/main/packages/sealed_countries) | Dart | No | Countries in the form of sealed classes | [](https://pub.dev/packages/sealed_countries) |
| [sealed_currencies](https://github.com/tsinis/sealed_world/tree/main/packages/sealed_currencies) | Dart | No | Currencies in the form of sealed classes | [](https://pub.dev/packages/sealed_currencies) |
| [sealed_languages](https://github.com/tsinis/sealed_world/tree/main/packages/sealed_languages) | Dart | Partially[^1] | Languages in the form of sealed classes | [](https://pub.dev/packages/sealed_languages) |
| [l10n_countries](https://github.com/tsinis/sealed_world/tree/main/packages/l10n_countries) | Dart | **Yes** | Country names localization maps | [](https://pub.dev/packages/l10n_countries) |
| [l10n_currencies](https://github.com/tsinis/sealed_world/tree/main/packages/l10n_currencies) | Dart | **Yes** | Currency names localization maps | [](https://pub.dev/packages/l10n_currencies) |
| [l10n_languages](https://github.com/tsinis/sealed_world/tree/main/packages/l10n_languages) | Dart | **Yes** | Language names localization maps | [](https://pub.dev/packages/l10n_languages) |**This ecosystem follows a hierarchical structure** with optional localization support. At the foundation are **languages and scripts**, providing core functionality across all packages. Building upon this, **currencies** extend the system, followed by **countries**. Each core package has an optional **l10n** companion that provides localization maps. The **countries** package serves as a bridge to Flutter, enabling the rendering of country **flags**, which the **world_countries** package uses to create UI components like country pickers with localized names and visual elements.
```mermaid
graph TB%% Sealed packages
sealed_languages["sealed_languages"]
sealed_currencies["sealed_currencies"]
sealed_countries["sealed_countries"]%% l10n packages
l10n_languages["l10n_languages"]
l10n_currencies["l10n_currencies"]
l10n_countries["l10n_countries"]%% World packages
world_flags["world_flags"]
world_countries["world_countries"]%% Main chain, labeled arrow for Flutter
sealed_languages --> sealed_currencies --> sealed_countries -->| ― Flutter ― | world_flags --> world_countries%% l10n packages pointing to each sealed package
l10n_languages --> sealed_languages
l10n_currencies --> sealed_currencies
l10n_countries --> sealed_countries%% Styles for sealed (light fill) and world packages (darker border)
style sealed_languages fill:#aec7e8,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style sealed_currencies fill:#aec7e8,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style sealed_countries fill:#aec7e8,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style world_flags fill:#aec7e8,stroke:#0050B9,stroke-width:2px,fill-opacity:0.5,rx:10,ry:10
style world_countries fill:#aec7e8,stroke:#0050B9,stroke-width:2px,fill-opacity:0.5,rx:10,ry:10%% Styles for l10n packages (turquoise fill)
style l10n_languages fill:#40DBE0BE,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style l10n_currencies fill:#40DBE0BE,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10
style l10n_countries fill:#40DBE0BE,stroke:#aec7e8,stroke-width:2px,fill-opacity:0.2,rx:10,ry:10%% Attempt to remove the label background only on the "Flutter" arrow (link index 2).
linkStyle 2 stroke:#0050B9,stroke-width:2px,color:#000,fill:none%% Clickable links
click sealed_languages "https://github.com/tsinis/sealed_world/tree/main/packages/sealed_languages"
click sealed_currencies "https://github.com/tsinis/sealed_world/tree/main/packages/sealed_currencies"
click sealed_countries "https://github.com/tsinis/sealed_world/tree/main/packages/sealed_countries"
click l10n_languages "https://github.com/tsinis/sealed_world/tree/main/packages/l10n_languages"
click l10n_currencies "https://github.com/tsinis/sealed_world/tree/main/packages/l10n_currencies"
click l10n_countries "https://github.com/tsinis/sealed_world/tree/main/packages/l10n_countries"
click world_flags "https://github.com/tsinis/sealed_world/tree/main/packages/world_flags"
click world_countries "https://github.com/tsinis/sealed_world/tree/main/packages/world_countries"
```[^1]: While `sealed_languages` technically depends on `l10n_languages` for localization, this is not part of its core functionality. The package primarily serves as the backbone for all `sealed_*` and `world_*` packages by providing typed locale classes and extensions that power localization maps across the entire ecosystem.