Incrementally Re-implementing a Largish Java Chatbot in Rust



Because I am reasonably convinced that Rust is the way to go for some other projects I have mentioned on this forum and because I want to well integrate these projects into the MaidSafe environment in the near future (and hopefully get some direct help from the MaidSafe people to do this), I have decided that I need to get some “Rust Guru with Java Experience” consulting done to comment on the degree of difficulty and the likely amount of effort required, to do the task in the subject.

The consulting would have to be covered by an NDA (the licence I have for the current Java code is closed source and will stay that way for the foreseeable future unfortunately). People should feel free to contact me privately if that is preferred.

The existing program won an AI award some years ago and I have been paying the original developer to modify it for my own purposes but continued development in this way has become untenable (the developer has other priorities now) and I need to find another way forward. Currently the chatbot runs as a daemon and receives and sends one-line inputs and outputs on a UNIX port. I guess the main question I would want answered is if this existing code could be incrementally converted to Rust and allow a program that is having it’s modules gradually converted to Rust, to keep running.

There is probably more info I can provide that doesn’t need to be covered by an NDA for any questions.




It would be helpful to get an order-of-magnitude size(say, line count) of the code in question. People have different ideas of “largish”.



Good point - leaving out external libraries, I count all the .java files giving totals of:

886 files
196,185 lines

I have no idea about Java but I am guessing this is not small?



Java code can call dynamically linked libs via JNI. You can port modules to rust and then change Java code to use JNI for that particular module.



Yes, someone has pointed that out to me privately - that sounds like a good mechanism for development.