alienscience / imapsrv

An IMAP server written in Go
BSD 3-Clause "New" or "Revised" License
49 stars 10 forks source link

IMAP Client + Server #11

Open xarg opened 9 years ago

xarg commented 9 years ago

I need both the client and server implementation in Go. And I need them now..

At the moment this repo is the only imap server implementation I know of and https://github.com/mxk/go-imap seems to be the better implementation of an imap client.

After discussing this with the author of this repo and the author of the go-imap client it became clear that even though they are not against it they don't have the time to actually make this happen. So I decided to merge the 2 projects into a single repo (implementing both client and server):

https://github.com/xarg/imap

Why not separate repos?

For me this makes sense because I need both of them, but also because I want to reuse the code from both the client and the server and I don't want to manage dependencies. Testing the client and the server will also become easier. Think net/http.

Since this move would require quite a bit of refactoring, it would be pretty difficult to contribute back to any of the projects. This is unfortunate, but I don't see another way.

Contributions are welcome.

alienscience commented 9 years ago

Good luck with the combined project.

xarg commented 9 years ago

Thanks. Just a quick update:

I managed to make both server and client coexist in the same package. Both are still running. And it was surprisingly easy to do. Static typing helped a lot in this case as there we types that had the same name. All the tests are passing for both client and the one test for the server. There is still lots of work to do, but it's much easier to go on from here.

I also took the liberty to get some commits made by @greynaert and applied them to my repo. The copyright is still left intact for all the files that I got from this project. I will also try to give credit in each commit to the right contributor.