Binary Field Encodings (BFE) for Secure Scuttlebutt (SSB).
See the SSB Binary Field Encodings Specification for details.
SsbBfe.encode("@HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519")
<<0, 0, 28, 74, 178, 247, 141, 19, 234, 224, 126, 79, 231, 125, 37, 166, 185,
241, 163, 95, 71, 50, 241, 245, 228, 86, 170, 70, 101, 140, 25, 167, 146,
105>>
SsbBfe.decode(
<<0, 0, 28, 74, 178, 247, 141, 19, 234, 224, 126, 79, 231, 125, 37, 166, 185,
241, 163, 95, 71, 50, 241, 245, 228, 86, 170, 70, 101, 140, 25, 167, 146,
105>>
)
"@HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519"
Encoding of the following Elixir types is supported:
- List
- Map
- Tuple
- String
- Boolean
- Nil
- Integer
- Float
Note: encoding of structs is not supported. You may wish to convert your struct to amap and encode it that way.
Encoding of the following Scuttlebutt types is supported:
- Feed (classic)
- Message (classic)
- Blob
- Signature
- Private message (box, box2)
Note: encoding of URIs is not currently supported, nor are other formats such as Gabby Grove and Bendy Butt.
If available in Hex, the package can be installed
by adding ssb_bfe
to your list of dependencies in mix.exs
:
def deps do
[
{:ssb_bfe, "~> 0.1.0"}
]
end
LGPL-3.0.