In a
previous post of mine I gave you a brief schedule of my plans. I'm sorry to say that they no longer apply. Now that I've seen the “next generation core” darkone was working on before he disappeared, I've decided to change my approach.
The v0.5.x code base, to be blunt, is a disorganized and poorly-documented mess. There are no design documents, no function descriptions, no useful comments, and no source history which makes the learning curve quite steep. Granted, that code base is several years old and there was only one person working on it (darkone).
The “next generation core”, while vastly incomplete, is a great improvement. This code is not documented either, but is organized better and written cleaner. I’m working on documenting the code, which at the same time forces me to learn and understand it. This new core features IPv6 and Unicode support, amongst many other things. Since this is a complete rewrite, it will take a while to build up the feature set of the Beta-5.8 series.
Implemented:
- Configuration reader
- Database API (dynamic data storage)
- Directory cache
- File and socket I/O API
- ID management (resolving user/group IDs and names)
- Memory allocater
- SSPI encryption/decryption (used for SSL)
- Timer functions
- Virtual file system
- Worker threads
To be implemented (not necessarily in this order):
- Module interface
- Logging interface
- FTP service handler
- FTP base/site commands
- Directory listing
- Users and groups
- NT service support
- Event handler (script events like pre/post events etc.)
- Custom site commands
- Scheduler
- Script language modules (PHP, Tcl)
- IPC (shared memory and messaging)
Will not be re-implemented:
- Telnet service (an insecure protocol that should have died years ago )
- Windows Shell based shared memory (only file mapping will be)
The HTTP service may return, but not anytime soon. This is an FTP server after all.
PS: I'm no longer in pain from the surgery, but I'm still not able to walk for another month or two. So I'm pretty much confined to the indoors (i.e. coding all day)
.