Crates.io | isosphere |
lib.rs | isosphere |
version | 0.2.1 |
source | src |
created_at | 2023-12-10 15:35:08.277467 |
updated_at | 2024-09-09 05:50:18.811168 |
description | Library of ISO standard data types, helpers, and related utilities |
homepage | |
repository | https://github.com/danwilliams/isosphere |
max_upload_size | |
id | 1064273 |
size | 309,899 |
The Isosphere crate is a library of ISO standard data types, helpers, and related utilities for Rust projects.
This crate was created with the intention of being a comprehensive, accurate, and fully-featured source of ISO and similar standard data in intuitive and easy-to-use form. Although there are a number of other crates already in existence that perform a similar role, they were all found to be lacking in some way: either features, approach, accuracy, or consistency. Additionally, those crates that do exist are isolated, do not interact with each other, and for the most part are not maintained. This crate aims to address all of these issues.
The name "Isosphere" is a portmanteau of "ISO" and "sphere", and is intended to convey the idea of an all-encompassing sphere of ISO data. As in, "everything in the ISO sphere".
There is a roadmap for the project, which sets out the planned releases and their associated functionality, and indicates current status according to the intended goals.
There is full support for (de)serialisation via Serde, and OpenAPI via Utoipa.
Currently, the following modules are provided:
The country
module provides ISO 3166-1 countries with alpha2/alpha3/numeric codes and basic
names. The countries are related to the currencies and languages that are
officially used by them, according to the ISO and Wikipedia.
Country
-
This enum represents a country, and provides access to its properties. It is
the central means of interaction with country data.
CountryCode
-
This enum represents a country code, in alpha2/alpha3/numeric form, suitable
for (de)serialisation.
The currency
module provides ISO 4217 currencies with alpha3/numeric codes and basic names.
The currencies are related to the countries that officially use them, according
to the ISO and Wikipedia.
Currency
-
This enum represents a currency, and provides access to its properties. It
is the central means of interaction with currency data.
CurrencyCode
-
This enum represents a currency code, in alpha3/numeric form, suitable for
(de)serialisation.
The language
module provides ISO 639-1 languages with alpha2 codes and basic names. The
languages are related to the countries that officially use them, according to
Wikipedia (the ISO does not provide this information).
Language
-
This enum represents a language, and provides access to its properties. It
is the central means of interaction with language data.
LanguageCode
-
This enum represents a language code, in alpha2 form, suitable for
(de)serialisation.