On Thursday, September 12th ryan said...
I've been looking at enigma a bit lately and I'm interested in door development on nodejs. What do you think would be the minimum basic required dependencies to build a simple door? I've been running hack & slash (aka dankdomain) for a bit now and really enjoy it, but it's fairly bloated for my purposes.
If you want something that is compatible with *most* systems, you probably need
at least door32.sys dropfile support with the shared file descriptor. For Node.js this is actually a issue which is why I wrote Bivrost! to bridge them. Of course you can also have a "connect back" option where your door connects to
a socket FD (which is simple in Node).
At the bare minimum, you just need a socket connection to read & write to. Beyond that, you'll probably want various draw routines and the like -- a good option may be the blessed library (look in NPM) though IIRC it hasn't been worked on in quite some time, but probably mostly good to go (there are also many forks).
On Thursday, September 12th ryan was heard saying...
I'd rather not putz with dos emulation. I think it should be reasonable enough to invoke the client connection and make it point at a dropfile or something, or otherwise "know" the user and node info. Sqlite can probably handle file locking and multiuser stuff. Anyway, just curious what you think here. I haven't actually done any npm/node work but it could be cool to build a "door kit" of sorts.
When you write good Node.js, you write async code, so you'll be getting multi-user for "free". As you say, SQLite can handle multiple connections -- it
has it's limitations but for BBS usage you have plenty of room; You can always
abstract it or point to a different DB such as PostgreSQL if you though you'd have a ton of users at once :)
A Node.js door kit would be pretty cool IMO, and probably get more people writing some doors.
--
NuSkooler
Xibalba BBS @ xibalba.l33t.codes / 44510(telnet) 44511(ssh)
ENiGMA 1/2 BBS WHQ | Phenom | 67 | iMPURE | ACiDic
--- ENiGMA 1/2 v0.0.10-alpha (linux; x64; 10.16.2)
* Origin: Xibalba -+- xibalba.l33t.codes:44510 (21:1/121)