Skip to content

Encode and decode data as emojis, in Swift 5

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

robindiddams/ecoji-swift

Repository files navigation

Ecoji-Swift

CocoaPods Compatible Swift Package Manager compatible

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.

Install

  pod 'Ecoji'

Usage

Works a lot like a JSONEncoder/Decoder

Encoding

Encode is implemented for Data or String inputs

import Ecoji
let encoder = EcojiEncoder()
let emojiString = encoder.encode(from: "Hello World!")
print(emojiString)
// "🏯🔩🚗🌷🍉👇🦒🕊👡📢☕☕"

Decoding

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)
}

TODO:

  • Decode/Encode
  • Tests
  • Linux compatibility
  • swift package manager
  • cocoa pod

Contribution

PRs welcome!

check test cases with swift test

License

Like the rust implementation this program is licensed under either of

at your option.

About

Encode and decode data as emojis, in Swift 5

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published