I have been programming in Erlang for the better part of two years now. I’ve written a few servers that I use internally and some tools that I personally find invaluable. Each one of my own projects seems to be isolated and while they play nice with other Erlang applications I haven’t seen a consistent flow from my own software, even though it is OTP compliant.
Most of my work with Erlang has been building communication applications, specifically for email. (SMTP and IMAP) I’ve found Erlang to be a fantastic language to work with on communication applications and I wanted to take my projects one step farther.
To that end I have given myself the task of writing most, if not all, of the core Internet servers in Erlang in a form that is designed to work together or as individual servers. This project will include (but isn’t limited to) DNS, LDAP, SMTP, POP3, IMAP4, HTTP and FTP.
I know that many of these servers have already been written and I have personally written at least one of them myself (SMTP) but my main goal for this project will be consistency and compatibility.
By compatability I want each of the separate servers to have access to and use of many of the modules from other servers. Most notably would be several scenarios:
- SMTP, IMAP4, POP3 and LDAP: When using an LDAP server for user authentication the different servers that are part of an email system can use the LDAP server to verify the users.
- HTTP, SMTP and IMAP4: When designing a web based email application the IMAP4 and SMTP protocols can be used from within their own servers to extend the web server.
- HTTP and LDAP: Another user authentication method as well as storing user information for later use.
- SMTP and DNS: It would be possible for the DNS server to access information from the SMTP regarding what IP Addresses are known for sending spam and create a DNSBL from that information.
While all of these scenarios can be accomplished now, to my knowledge none of them are being done in pure Erlang. This is the intention of my creating the Erlang Internet Framework.
Erlang, SMTP, IMAP, POP3, DNS, LDAP, HTTP, Erlang Internet Framework, EIF
Technorati Tags: Erlang, SMTP, IMAP, POP3, DNS, LDAP, HTTP, Erlang Internet Framework, EIF







You may want to also look into adding a SIP or IM (maybe Jabber) module to handle presence management in conjuction with the user credential management in LDAP.
I was thinking that I want to include Jabber support so that the users in EIF can easily be used in Jabber as well. In fact this is the one Erlang package that I think they are doing such a great job of implement the spec and active development that I don’t think I could create anything better. (at least that I know about)
and I also have plans for implementing SIP, but I haven’t looked into the spec enough to commit to it yet.
So yeah, we are thinking the same things