As promised, here's an update on ZitaFTP Server.

Video Summary

New Release this Week

  • A new version for AmigaOS should be out this week
  • It contains bug-fixes
  • Also updated to AmiSSL 4.5

Cross-Platform Development Challenges

  • The configuration GUI will be web-based, because
    • It's instantly cross-platform (on all systems with a browser)
    • Opens up the possibility of remote server administration
  • I intended to find a web-framework, and embed it in the FTP server, which sounds great, but...

Problem 1: Dated AmigaOS Browsers

  • Unable to use modern frameworks (e.g., Vue.js), because the best browser on AmigaOS can't handle them
  • Bootstrap 4 themes don't display correctly (layout & other issues)
  • Finally found a Bootstrap 3 theme that I like that also worked okay on AmigaOS
  • So, will use the Bootstrap 3 theme

Problem 2: The HTTP Server & Framework

  • Tried to find a C++ web framework to use
  • CppCMS won't even compile on Windows, and gave up after too many issues
  • Wt (and others) rely on Boost::Asio, which isn't available on AmigaOS
    • Couldn't persuade anyone to help with porting Asio, and not good at porting myself
    • Wt is also bigger and heavier than I need
  • Pistache & Kore look nice, but rely on epoll()/kqueue(), which are Linux & BSD only. Converting to use select()/pselect() is hard, because they're designed around epoll()'s/kqueue()'s behaviour
  • Ended up writing my own HTTP server code
    • The web equivalent of writing a game engine before you can start writing the game instead of using an off-the-shelf game engine

Current Status

  • The HTTP server is working (it can serve basic pages), but static file downloading isn't done yet
  • Once it's finished, then I can start on the configuration GUI

As you can see, it's been quite challenging. I hope to be able to show you the beginnings of the future configuration GUI soon.