Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stscoundrel/riimut-rs
Transform latin letters to runes & vice versa. Rust version.
https://github.com/stscoundrel/riimut-rs
futhark futhark-runes futhorc-runes futhork futhork-runes runes rust staveless-runes transform
Last synced: 2 months ago
JSON representation
Transform latin letters to runes & vice versa. Rust version.
- Host: GitHub
- URL: https://github.com/stscoundrel/riimut-rs
- Owner: stscoundrel
- License: mit
- Created: 2021-07-18T16:58:56.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-11T16:21:15.000Z (over 1 year ago)
- Last Synced: 2024-09-15T10:23:46.014Z (4 months ago)
- Topics: futhark, futhark-runes, futhorc-runes, futhork, futhork-runes, runes, rust, staveless-runes, transform
- Language: Rust
- Homepage: https://docs.rs/riimut
- Size: 45.9 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Riimut
Transform latin letters to runes & vice versa.
Includes transformers for four main runic alphabets and common variations:
- Elder Futhark
- Younger Futhark
- Medieval Futhork
- Futhorc (Anglo-Frisian runes)
- Staveless Futhark### Install
Add this to your `Cargo.toml`:
```toml
[dependencies]
riimut = "1.2.0"
```### Usage
Text to runes:
```rust
// Ships five dialects in separate modules.
use riimut::younger_futhark;
use riimut::elder_futhark;
use riimut::medieval_futhork;
use riimut::futhorc;
use riimut::staveless_futhark;// From Old Groms runestone.
let younger_futhark = younger_futhark::letters_to_runes("auk tani karþi kristna");
println!(younger_futhark); // "ᛅᚢᚴ:ᛏᛅᚾᛁ:ᚴᛅᚱᚦᛁ:ᚴᚱᛁᛋᛏᚾᛅ"// From 4th century axe in Jutland
let elder_futhark = elder_futhark::letters_to_runes("wagagastiz alu wihgu sikijaz aiþalataz");
println!(elder_futhark); // "ᚹᚨᚷᚨᚷᚨᛋᛏᛁᛉ:ᚨᛚᚢ:ᚹᛁᚻᚷᚢ:ᛋᛁᚲᛁᛃᚨᛉ:ᚨᛁᚦᚨᛚᚨᛏᚨᛉ"// From Lord's Prayer, in Old Norse.
let medieval_futhork = medieval_futhork::letters_to_runes("Faðer uor som ast i himlüm, halgað warðe þit nama");
println!(medieval_futhork); // "ᚠᛆᚦᚽᚱ:ᚢᚮᚱ:ᛋᚮᛘ:ᛆᛋᛏ:ᛁ:ᚼᛁᛘᛚᚢᛘ,:ᚼᛆᛚᚵᛆᚦ:ᚠᛆᚱᚦᚽ:ᚦᛁᛏ:ᚿᛆᛘᛆ"// From 8th century Franks Casket, in late West Saxon.
let futhorc = futhorc::letters_to_runes("fisc.flodu.ahofonferg | enberig |");
println!(futhorc); // "ᚠᛁᛋᚳ.ᚠᛚᚩᛞᚢ.ᚪᚻᚩᚠᚩᚾᚠᛖᚱᚷ:|:ᛖᚾᛒᛖᚱᛁᚷ:|"// From Old Norse text in Hög runestone.
let staveless = staveless_futhark::letters_to_runes("kuþniutr þru sun lit rita stin þina ak bru kirþi aftiʀ bruþr sina asbiurn ak at kuþlaf");
println!(futhorc); // ᛍ╮ו⸜ᛁ╮⸍◟:ו◟╮:╵╮⸜:⸌ᛁ⸍:◟ᛁ⸍⸝:╵⸍ᛁ⸜:וᛁ⸜⸝:⸝ᛍ:ˏ◟╮:ᛍᛁ◟וᛁ:⸝ᛙ⸍ᛁʀ:ˏ◟╮ו◟:╵ᛁ⸜⸝:⸝╵ˏᛁ╮◟⸜:⸝ᛍ:⸝⸍:ᛍ╮ו⸌⸝ᛙ```
Runes to text:
```rust// All four dialects contain runes_to_letters function.
use riimut::younger_futhark;let runic_text = "ᛅᚢᚴ:ᛏᛅᚾᛁ:ᚴᛅᚱᚦᛁ:ᚴᚱᛁᛋᛏᚾᛅ";
let latin_text = younger_futhark::runes_to_letters(runic_text);println!(latin_text); // "auk tani karþi kristna"
```
Younger Futhark comes with long branch (Danish) and short twig (Norwegian & Swedish) variants. The default `letters_to_runes` uses long branch.
```rust
use riimut::younger_futhark;let letters = "aábcdðeéfghiíjklmnoópqrstþuúvwxyýzåäæöøǫþ";
// Comes with named functions per style.
let long_branch = younger_futhark.letters_to_long_branch_runes(letters);
let short_twig = younger_futhark.letters_to_short_twig_runes(letters);println!(long_branch); // ᛅᛅᛒᛋᛏᚦᛁᛁᚠᚴᚼᛁᛁᛁᚴᛚᛘᚾᚢᚢᛒᚴᚱᛋᛏᚦᚢᚢᚢᚢᛋᚢᚢᛋᚢᛅᛅᚢᚢᚢᚦ
println!(short_twig); // ᛆᛆᛒᛌᛐᚦᛁᛁᚠᚴᚽᛁᛁᛁᚴᛚᛘᚿᚢᚢᛒᚴᚱᛌᛐᚦᚢᚢᚢᚢᛌᚢᚢᛌᚢᛆᛆᚢᚢᚢᚦ```
#### What's in the name?
"Riimut" is the Finnish word for "runes". Most rune related cratenames were already taken, so just added some Finnish flavor to it.