Edky
Edky (pronounced ed-key) converts Ed25519 public keys between various encoding formats.
[Features] | [Prerequisites] | [Installation] | [Examples] | [Reference] | [Development]
✨ Features
- Available both as the command-line tool
edkyand a Rust library. - Supports the Base16, Base32z, Base58, Base64, and Multibase encodings.
- Provides interop between ASIMOV, IPFS, Iroh, libp2p, NEAR, OpenSSH, etc.
- 100% pure and safe Rust with minimal dependencies and no bloat.
- Designed for
#![no_std]environment compatibility from the get-go. - Supports opting out of any feature using comprehensive feature flags.
- Adheres to the Rust API Guidelines in its naming conventions.
- Polyglot software also available for Dart, Python, Ruby, and TypeScript.
- Cuts red tape: 100% free and unencumbered public domain software.
🛠️ Prerequisites
- Rust 2024+
⬇️ Installation
Installation of the CLI via Cargo
Installation of the Library via Cargo
Installation of the Library in Cargo.toml
Enable all default features:
[]
= { = "0" }
Enable only specific features:
[]
= { = "0", = false, = ["alloc"] }
👉 Examples
Converting Ed25119 Public Keys via the CLI
Importing the Library
use ;
Decoding Ed25519 Public Keys
#
Encoding Ed25519 Public Keys
#
📚 Reference
Command-Line Interface
$ edky
Edky converts Ed25519 public keys between various encoding formats
Usage: edky [OPTIONS] [COMMAND]
Commands:
list List the supported public key encoding formats
convert Convert Ed25519 public keys between various encoding formats
parse Parse Ed25519 public keys in various encoding formats
help Print this message or the help of the given subcommand(s)
Options:
--color <COLOR> Set the color output mode [default: auto] [possible values: auto, always, never]
-d, --debug Enable debugging output
--license Show license information
-v, --verbose... Enable verbose output (may be repeated for more verbosity)
-V, --version Print version information
-h, --help Print help (see more with '--help')
edky list
$ edky list --help
List the supported public key encoding formats
Usage: edky list [OPTIONS]
Options:
--color <COLOR> Set the color output mode [default: auto] [possible values: auto, always, never]
-d, --debug Enable debugging output
-v, --verbose... Enable verbose output (may be repeated for more verbosity)
-h, --help Print help
edky convert
$ edky convert --help
Convert Ed25519 public keys between various encoding formats
Usage: edky convert [OPTIONS] [INPUTS]...
Arguments:
[INPUTS]... The input strings to convert
Options:
--color <COLOR> Set the color output mode [default: auto] [possible values: auto, always, never]
-f, --from <FROM> The input encoding format [default: hex]
-d, --debug Enable debugging output
-t, --to <TO> The output encoding format [default: hex]
-v, --verbose... Enable verbose output (may be repeated for more verbosity)
-h, --help Print help
edky parse
$ edky parse --help
Parse Ed25519 public keys in various encoding formats
Usage: edky parse [OPTIONS] [INPUTS]...
Arguments:
[INPUTS]... The input strings to parse
Options:
--color <COLOR> Set the color output mode [default: auto] [possible values: auto, always, never]
-f, --from <FROM> The input encoding format [default: hex]
-d, --debug Enable debugging output
-v, --verbose... Enable verbose output (may be repeated for more verbosity)
-h, --help Print help
Encodings
For -f, -t |
Sample Public Key |
|---|---|
asimov |
ⒶYFVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z |
base16 |
d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a |
base32z |
47pjoycnsrfmxikm95jh13y88e8qnhzu5kungjpxyepgt7a8krpy |
base58 |
FVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z |
base64 |
11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo= |
base64url |
11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo |
hex |
d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a |
ipfs |
z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw |
iroh |
47pjoycnsrfmxikm95jh13y88e8qnhzu5kungjpxyepgt7a8krpy |
libp2p |
z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw |
multibase |
z6MktwupdmLXVVqTzCw4i46r4uGyosGXRnR3XjN4Zq7oMMsw |
near |
ed25519:FVen3X669xLzsi6N2V91DoiyzHzg1uAgqiT8jZ9nS96Z |
openssh |
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINdamAGCsQq31Uv+08lkBzoO4XLz2qYjJa8CGmj3B1Ea |
Feature Flags
Interoperability
| Feature | Version | Summary |
|---|---|---|
bytemuck |
1.25 | Implements bytemuck::{Pod, Zeroable} |
ed25519-dalek |
3.0 | Implements From<ed25519_dalek::VerifyingKey> |
eloquent |
2.1 | Implements eloquent::ToSql |
iroh1 |
1.0 | Implements From<iroh::{PublicKey, EndpointAddr}> |
libsql |
0.9 | Implements libsql::params::IntoValue |
rocket |
0.5 | Implements rocket::request::FromParam |
serde |
1.0 | Derives serde::{Serialize, Deserialize} |
turso |
0.6 | Implements turso::IntoValue |
zerocopy |
0.8 | Derives zerocopy::{FromBytes, IntoBytes} |
👨💻 Development