Hi Calvin, here are clear words about what will happen and what not:
first the bad news:
- nobody is working on ssh-rpc. I think it does not compile in current trunk. Maybe someone fixes it. Maybe not. I will not put more work into ssh-rpc. Yes i'm not happy about this, i have build things on top of it myself. But i think i can build something better and something more easy to use.
- i'm not yet in contact with retroflux. I wanted to, but it did not happen. Thanks for the reminder.
- DJRS is from drbob. He is either away or i give him other bugs to fix. I don't expect he will continue DJRS. Sad but true.
then the good news:
- a JSON over http interface is currently being developed by me. I also work on a new webinterface. I plan to continue this work. Code is here:
https://gitorious.org/rssocialnet/rssocialnet (for trunk/v0.6 only)
- the JSON over http interface is not stable. I change whatever i like whenever i like. This is because i'm not absolutely sure what i'm doing. I try things and if they are good they stay. Else i remove them. If someone takes the time to try and give feedback, i would be happy. Unfortunately the docs are not ready, i only have a small test which could be used to generate docs.
- expect progress to be slow, but there will be progress.
- until now my plan with JSON, http and reactJS works. I'm very happy about everything. I think it is good to only need JavaScript/HTML/CSS on the client side. And nicely (de)coupled with the server side which is just C++. Installation and configuration consists only of copying the plugin and some files (currently you have to compile yourself, but this will change).
Below is what i posted to the internal forums in v0.6.
From time to time it pops up that rs-nogui is not usable (Re: Bug: RS06 Modes not saving after exit).
Or said positively: rs-nogui has much room for improvements and has great potential.
The defects are obvious:
- missing features
- ssh-rpc is to complicated to set it up correctly
I want rs-nogui work like this:
Install and start rs-nogui with ssh or a graphical managment tool. This stuff is part of the OS.
The command line to start rs-nogui should be as simple as possible.
example:
$ retroshare-nogui --webinterface 8080
Now RS provides a webinterface on port 8080. It allows to manage keys and locations and to log in.
Further control and usage would happen through the webinterface. Either directly or by tunneling the webinterface through a RS Plugin. The second idea would solve all NAT, DNS and encryption/authentication issues.
Steps towards this goal:
- make new plan for webinterface: done
- implement new webinterface backend: half done in rssocialnet plugin
- implement http server in rs-nogui, i want to use libmicrohttpd
- make the html, css, JavaScript (with react.js)
What will happen with ssh-rpc?
I don't want to maintain the protobuf stuff. I think my JSON stuff is better. If someone gives me valid reasons why protobuf is superior and JSON is shit i will talk about this. For now JSON works and is two times less complex.
In the new JSON over http interface in rssocialnet, JSON is just an encoding. It can replaced for something else at any time. In contrast, the old protobuf stuff is tightly coupled to protobuf. With a table string identifier->integer, it would even be possibel to transform JSON to somethign similar space efficient as protobuf. But i think we don't have to care about space efficiency at this point. The real bandwidth consumers are images, audio and video streams.
Maybe we want to keep SSH to transport JSON messages. The ssh server would be there, it just needs a few lines of glue code to connect it to the JSON interface.
Chatserver
It would be nice to use the same rs-nogui for normal operation and the chatserver.
We could use a lua script to manage the friends list, or we can use php and the JSON over http interface to add and remove friends.
But this is the future. Currently there is no need to replace existing and working chatserver code.