More implementations
mimoo opened this issue · comments
To become useful, Disco needs to be widely supported. This means a libdisco needs to exist in:
- C for embedded devices (disco-c).
- Rust (disco)
- C# (DiscoNet)
- python (PyDisco)
- Swift (GDisco)
- Java
- Javascript
- Erlang
- etc.
For now, no interop tests have been done. If people are interested we could have a date setup to plan for that.
There's also Xisco which doesn't use Strobe but Xoodyak
Furthermore, it needs to be integrated in load balancers and proxies:
- HAProxy
- Apache
- Nginx
How to implement Disco?
- Implement or find an implementation of Strobe. (The reference code is in C and python.)
- Read the "How to Read This Document and Implement Disco" section of the Disco spec. What it tells you is to implement Noise but to ignore its SymmetricState and CipherState sections. (You can also ignore any symmetric crypto.)
- Once you have that, implement the SymmetricState according to the Disco spec
- Tada!
I've just started working on python version.
... better late than never :)
Actually noting (except a couple of symmetric methods) but there will be more in the nearest future.
yeah! That's awesome :) I'll take a look at it when I get some time.
Looks like there is a swift version
there's Xisco which doesn't use Strobe but xoodyak! https://github.com/nixberg/Xisco
And a rust implementation: https://github.com/rust-p2p/disco