Hi! Just to cut this short: We have gnunet-java, gnunet-python (admittedly not much there yet), some people started gnunet-ruby and gnunet-rust. GNUnet is a multi-process system, so each service can be written (or re-written) in any language. You fancy Go or Haskell or OCAML instead, go for it.
Just make sure that: 1) if you re-write an existing service or client library, you provide / use the same IPC API on the TCP / Unix domain socket port and use the same protocol between peers. That way, you can replace any (or all) components with alternatives in any language you fancy. 2) if you re-write general APIs (util) or libraries, we advice that you try to keep similar names for equivalent operations, so that it is easy for developers to switch between the different language bindings. gnunet-java is a good example for how to do this. 3) don't expect C hackers to switch to Haskell, or Java developers to Go, the resulting loss of personal productivity is unlikely to work out in anybody's favor. What you can expect is that if you produce a useful subsystem in any (libre) language in a way that fits with the rest of the architecture, we'll be happy to take it. Furthermore, if you re-write any existing subsystem in a way that is clearly superior, we'll simply swap one binary for another and everybody will be happy. GNUnet is primarily a (large) set of protocols --- between peers and between processes, and I don't care too much about which (libre) language the components are written in, as long as they are written well (and perform reasonably well). So please, go ahead, make it safer (even though I personally think the choice of language is not the most critical security issue today, I do think that we must facilitate contributions from hackers that are not versed in C or just have a different preference. So I would encourage this to broaden the contributor base more than for security reasons. Still, the result is the same ;-). Happy hacking! -Christian On 07/08/2015 09:16 PM, Ed Baskerville wrote: > My question: why is GNUnet development being done in traditional C style, > with raw pointers to structs, dereferencing, manual memory copying, etc.? > > A related question: how hard would it be to make it safer?
signature.asc
Description: OpenPGP digital signature
_______________________________________________ GNUnet-developers mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnunet-developers
