A library for manipulating Urbit atoms and auras.
Ursus Atom grants support for the urbit phonetic base, useful for representing Azimuth points ('ships'):
let ship = try! PatP(string: "~lanrus-rinfep")
let point = Int(ship) // 328448
There is an Aura
protocol with an associated type Atom
which can be any UnsignedInteger
type, but in practice we use BigUInt
types.
Current implementations:
PatP
(@p
)PatQ
(@q
)PatUV
(@uv
)
Ursus Atom can be installed using Cocoapods by adding the following line to your podfile:
pod 'UrsusAtom', '~> 1.2'
I can probably help set up Carthage or Swift Package Manager support if you need it.
Things that would make this codebase nicer:
- Additional atom and aura types; the date format would be a good candidate.
- Unit tests for the cryptographic methods in
PhoneticBaseObfuscator
(ported from urbit-hob). - Better documentation/examples.