Ask HN: I wrote a Slack compatible server. Can I open source it?
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).
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.
58 comments
[ 4.7 ms ] story [ 117 ms ] thread[1]: https://en.wikipedia.org/wiki/Application_programming_interf...
[2]: https://github.com/errbit/errbit
Not a lawyer though.
Since the OP says that this is for another project, they might get not only a C&D for the chat code, but the original project might be infringing as well. Even if it's not actually infringing, it might result in some legal fees.
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.
IANAL; you should probably get actual legal advice.
The most recent ruling said that APIs, by themselves, are copyrightable[0].
The case is back to the district court now to determine whether the wholesale copying and reimplementation an API falls under the fair-use defense.
[0] https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google...
But that predates my existence :-)
https://github.com/errbit/errbit
WINE is a clone of the Windows API. ReactOS is another one.
Also, we should include implementations of software that encodes or decodes data formats, such as audio/video/image codecs. There are numerous examples of free implementations of software that works with proprietary formats, which are analogous to a proprietary API.
Like most non-flagrant potential IP violations, no one can really say for sure until a court hears the case and makes a judgement as to whether the use is fair or unfair, or likely to cause confusion among consumers or not.
IANAL.
Mac OS X looks for a set of firmware variables containing a non-formatted version of following haiku (reproduced for the purpose of artistic comment):
If you shipped a transparently Mac-compatible x86 machine, you'd have to include this haiku (in some form) in the firmware.In this particular case, I believe what you would have produced would be classified as a "circumvention" device under the DMCA (https://en.wikipedia.org/wiki/Anti-circumvention).
The state of "IP" law makes me very sad.
I wonder how far back in OS(X) it dates?
Internally, Mac OS X ran on commodity PCs for quite some time before that and didn't include DSMOS.
What courts is this precedent for?
Generally, the way precedent works is that if appeals from court X go to court Y, then the decisions of court Y are precedent for court X. If court Z is not on the appeals path from X, then the decisions of court Z are not binding precedent for X.
For copyright cases, appeals normally do NOT go to the CAFC. They go the Courts of Appeal for the circuit in which the court appealed from resides. E.g., copyright cases from district courts in the 2nd Circuit go to the 2nd Circuit Court of Appeals.
In general, that is the appeals path from the Federal district court. Copyright cases aren't specifically singled out.
Oracle vs. Google was tried in the 9th Circuit. If it has just been a copyright case, the appeal would have went to the 9th Circuit Court of Appeals. However, it was also a patent case, and patent cases are singled out. They are explicitly diverted from the normal appeals path and go to the CAFC. If the case is also some other kind of case, such as a copyright case or an antitrust case, the CAFC is allowed to hear those aspects too.
So does this mean that if P sues D in the 9th circuit over copyright, with no patent issues or any other issues that would bring the appeal to the CAFC, then the district court would only use the 9th Circuit Court of Appeals for precedent (which I believe disagrees with CAFC), and ignore CAFC's Google vs. Oracle copyright ruling?
Even more confusing, suppose P sues D over copyright and patents in the 9th Circuit. The district court figures that the case, if appealed, will go to the CAFC, and so follows CAFC precedent for the copyright aspects. Now suppose after the court rules, neither party appeals the court's decisions on any of the patent issues. The only appeal copyright issues. Does the case still go to CAFC? Or does it go the 9th Circuit? If it goes to the 9th Circuit, do they apply their own copyright precedent or CAFC precedent?
Recall CentOS before RedHat was brought back into the fold. RedHat was always referred to as PNAELV, a "Prominent North American Enterprise Linux Vendor" to avoid running afoul of trademark issues.
http://en.wikipedia.org/wiki/Reverse_engineering#Legality
The stack is Node.js and PostgreSQL (I probably reinvented some kind of message queue). There is a "dumb" websocket server that just receives/sends events from/to the backend server. Both the websocket and backend servers can scale horizontally.
I haven't written any XMPP/IRC gateways for now though I suppose it wouldn't be that difficult to do.
https://twitter.com/SlackHQ/status/521894442064560128
https://twitter.com/SlackHQ/status/458391373994270720
Beyond that, there's still some gray area, legally speaking, with concern to the API interfaces themselves being either patentable or copyright... not even just the documentation of.
For one, the jurisdiction that you're in is critical, for another the process is in some cases as important as the end result.
You should consult a lawyer that you pay for.
Just make it clear that the only reference to Slack is when you say its "Compatible with the Slack API".
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.
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!)
So calling something "Open Slack" would almost assuredly not be fair game... while claiming that the product is "mostly compatible with the Slack API" would probably be fine, especially since it almost self-evidently implies that the product is not Slack.
In any case, best to tread lightly with the use of their name at all, and certainly don't use it for marketing or promotion. Unlike patents and copyright, the only way to obtain and keep a trademark is to use it and defend it, so companies are rightfully aggressive in that regard.
https://github.com/libreboard/libreboard
https://github.com/libreboard/libreboard/issues/92
APIs/functionality/data models/etc can't be copyrighted (again, in Europe). See http://www.bloomberg.com/news/articles/2012-05-02/copyright-....
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.
For these reasons, I have doubts as to whether or not they'd mind, regardless of IP concerns.