Hello all!
For a long time, I've been fascinated with telnet BBSs, and always wanted to write my own. Getting info on some of the technologies needed is hard, so I'm reaching out for help. I've done basic TCP/UDP sockets programming in Uni (10 years ago) and am a web developer by trade (mostly Ruby and Javascript these days) so I have some grasp on how things work.
I've been reading FTSC specifications, and find the whole "file" orientation ethos interesting - since it's easy to implement parsers, in theory.
I've also read the Python BBS articles on the mystic wiki, and have found
them somewhat lacking since they're in the "write this, then this" vein and
not so much why something is needed (like what is Suppress Go Ahead, for example).
Looking into Mystic's internals, it seems to work just like I would picture
my system working - login, then a series of EVENTs are sent to a "general
state machine" that moves the user along a series of SCREENs. The state
machine and the screens themselves should be customizable by the sysop.
With all this in mind, my question is:
- is there a "minimal Telnet protocol you can get away with" document for prospective BBS software writers?
- can anyone help me with a "fixed" binkP setup that I can repeatedly hammer with requests and it will always have the same messages in, so I don't have to keep sending new ones to fetch and parse? Or help me set it up myself?
I think that by describing the "on the wire" protocol needed for BBSs in a series of blog posts (or on the Mystic wiki) we can create a handbook for any BBS implementer, combining info on Telnet, binkP and FTN networks.
I plan on using Crystal, a "compiled" version of Ruby that has the speed of
C++ and creates binaries that make distribution easier. It also packs
Go-style channels for easy concurrency and ideal for a BBS as it can mimic event-driven workflows easily.
Let me know what you think, and thanks for your time and any pointers!
Cheers,
sardaukar
I must not fear. Fear is the mind-killer.
--- Mystic BBS v1.12 A31 (Windows)
* Origin: Agency BBS |
telnet://agency.bbs.geek.nz (21:1/101)