I had to implement a chat server for a project I'm working on and since I had never done this before, I used Slack's documentation as a roadmap and ended up re-implementing pretty much their whole API (I went a bit overboard I know).<p>I would like to open source this code but was wondering if it was legal for me to do so or would I be infringing on Slack's IP.
In general, re-implementing a software product from open specifications has been protected by the courts. There are numerous examples, from the original IBM BIOS to Microsoft BASIC to PostGres and BSD Unix. That said, the Google case is casting a shadow on programatic APIs, but 'look and feel' are essentially fair game.<p>What are protected and protectable are Trademarks. So using the word 'Slack' in the name or anything that looks like it came from the Slack web site (see the recent "Open Trello" flare up) will cause you legal issues and should be avoided entirely.<p>The most interesting "middle" case is if you want to host third party integrations which work on your system and Slack's then you're going to get some push back. But again, caveat things like patents, being enough workalike (or my favorite phrase bug-for-bug compatible) is well trodden and has consistently been shown to be ok. (see the latest Keurig fiasco for that!)
I'd do it, but keep the references to Slack to a minimum. So, don't call it "OpenSlack", for example. Just give it a nice name, mention that it's Slack API compatible and you should be fine. At most, I suspect they'll just C&D you and then you say sorry and take it down. I can't imagine you'll get in any trouble.<p>Not a lawyer though.
APIs themselves aren't copyrightable, as we saw in Google's recent lawsuit. The documentation is though, so be sure you're not infringing on that.<p>Any license agreement you or your company have with Slack might "ban" you from doing this; you might e.g. lose your access. That will be a contractual matter between you and them though, not anything criminal.<p>IANAL; you should probably get actual legal advice.
IANAL but I don't think API compatibility is infringement[1]. At least, I've seen projects that advertise this as a feature - for example, errbit[2] is API-compatible with Airbrake.<p>[1]: <a href="https://en.wikipedia.org/wiki/Application_programming_interface#APIs_and_copyrights" rel="nofollow">https://en.wikipedia.org/wiki/Application_programming_interf...</a><p>[2]: <a href="https://github.com/errbit/errbit" rel="nofollow">https://github.com/errbit/errbit</a>
What technologies did you use? XMPP? Node? ... I don't think your are infringing any copyright as long as you are not making profit from it. Reverse Engineering is legal, specially when done with the aim of interoperability... and what you are seeking is an interoperable server right?<p><a href="http://en.wikipedia.org/wiki/Reverse_engineering#Legality" rel="nofollow">http://en.wikipedia.org/wiki/Reverse_engineering#Legality</a>
Slack is pretty much just IRC with an indexer, a pretty web interface, a mobile interface and a bunch of of cool datafeeds/bots. These things aren't hard to build, and many people build them internally in companies all the time.<p>Their value proposition isn't the technology, their value proposition is the packaging. It all just works. People actively maintain the interfaces and the GUI. They have ops teams that keep it up. The integrations are maintained and are literally plug and play. You can pretty much just sign up and within an hour its all done for not much money.<p>For these reasons, I have doubts as to whether or not they'd mind, regardless of IP concerns.
No clue where you're based, but in the EU, this is legal. You are allowed to replicate and reverse engineer systems, as long as you do not use the original source code.<p>APIs/functionality/data models/etc can't be copyrighted (again, in Europe). See <a href="http://www.bloomberg.com/news/articles/2012-05-02/copyright-can-t-block-software-reverse-engineering-court" rel="nofollow">http://www.bloomberg.com/news/articles/2012-05-02/copyright-...</a>.
You could ask Slack if they would mind you open sourcing it?<p>Just make it clear that the only reference to Slack is when you say its "Compatible with the Slack API".
IP can be broken down into its constituent parts. Patent, Copyright, trademark, and trade secret. The rules for each are different and sufficiently complex that the question should be treated as these four parts.
Without a lot more information your question is un-answerable.<p>For one, the jurisdiction that you're in is critical, for another the process is in some cases as important as the end result.<p>You should consult a lawyer that you pay for.
Did you manage to connect the regular Slack client to this? Is it enough to redirect the traffic to "myorg.slack.com" wherever your daemon is running? That would be kinda neat.
If you would like to use it as a reference, and dont want any sort of troubles, make sure it does not reach mass adoption. Some exotic build instruction or complicated deployment will do.