A Swift 5 implementation of the Ecoji encoding standard.
Provides a library for encoding and decoding data as a base-1024 sequence of emojis
Visit ecoji.io to try Ecoji in your browser.
pod 'Ecoji'
Works a lot like a JSONEncoder/Decoder
Encode is implemented for Data or String inputs
import Ecoji
let encoder = EcojiEncoder()
let emojiString = encoder.encode(from: "Hello World!")
print(emojiString)
// "🏯🔩🚗🌷🍉👇🦒🕊👡📢☕☕"
You can decode into Data like this:
let decoder = EcojiDecoder()
do {
let data = try decoder.decode(string: "🏯🔩🚗🌷🍉👇🦒🕊👡📢☕☕"
print(data)
// "12 bytes"
} catch let err as DecodingError {
print(err)
}
Theres also a convenience method for reconstruction utf strings from the data:
let decoder = EcojiDecoder()
do {
let data = try decoder.decodeToString(string: "🏯🔩🚗🌷🍉👇🦒🕊👡📢☕☕"
print(data)
// "Hello World!"
} catch let err as DecodingError {
print(err)
}
- Decode/Encode
- Tests
- Linux compatibility
- swift package manager
- cocoa pod
PRs welcome!
check test cases with swift test
Like the rust implementation this program is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.