A little context for this question: I'm building an alternative stock exchange (ATS) named "Ritchie". It is based on "The Open Source Way," and I'm trying to decide on the proper license. http://www.ritchiestockexchange.com/

This exchange is designed for algorithmic trading and exposes an API. Traders will execute buy and sell orders through said API using proprietary algorithms--and this is where the licensing question comes in.

I would like to publish the code under the most permissive license possible. The actual exchange code can be freely downloaded off of GitHub, and those who wish may compile the code set up their own exchange, but there is a real concern for intellectual property regarding client algorithms. As I understand it, some licenses are "viral." Any code using or including code published under a viral license must also be made public and open-source.

This is not a viable option. If someone invests the time and cost to write a profitable quantitative algorithm, they cannot be expected to make their code public. For this reason, I have published under the LGPL.

Would you agree that this is this the best option? The "Limited" part of the LGPL permits traders to retain ownership of their algos.


I think the answer depends on your objective. The LGPL is indeed less restrictive than the GPL; however, it is still a technical license, can be ambiguous and hard to apply, and imposes some significant obligations. Even the LGPL is 'viral' in certain situations. There are plenty of attorneys who are nervous about approving LGPL code in proprietary applications.

If your goal is really to use "the most permissive license possible," I'd recommend you use the MIT license, BSD license, or Apache 2.0. These are more permissive than the LGPL, and most lawyers and community members with some familiarity with open source licensing recognize them as such.

  • Most of the first para of this looks like standard FUD to me, and the author quotes nothing to support his arguments. The second para, however, is fairly spot-on; if you're worried about copyleft being an issue, use the weakest copyleft licence possible. – MadHatter Apr 19 '17 at 5:55
  • 1
    My goal is not to be "most permissive," and this is not FUD. The conundrum here is the division between the exchange and the traders: the license must permit the exchange code to be freely distributed, while enabling traders to keep their algorithm code secret and proprietary. – kmiklas Apr 19 '17 at 15:23

What kind of API is it? If this is an API over a network (clients execute their trading algorithms on their own machines and communicate with your server), then there is no way copyleft licenses (also improperly named "viral" licenses) can affect the proprietary trading algorithms. In this case, you can even consider using a strong license such as AGPL

Another case when your clients wouldn't be concerned by the copyleft aspect of your license, would be if they execute your software with some of their code on their own machines and do not re-distribute it.

That being said, the choice of the license should really depend on what you want people to be able to do with your code. If the answer is "anything" then, a more permissive license such as MIT should be preferred.

  • Yes it is an API over a network. The exchange runs on one server, trader algos on another, and they are connected by some form of a network. The conundrum here is that the exchange code must public, while the trader algorithms are secret and proprietary. – kmiklas Apr 19 '17 at 15:20
  • OK, then you shouldn't have to worry about copyleft / "virality". – Zimm i48 Apr 19 '17 at 15:22
  • Forgive my ignorance, but why not? – kmiklas Apr 19 '17 at 15:24
  • Because copyleft only affect derivative work and "arm-length" communication is not considered to make a derivative work. You have lots of answers over there gnu.org/licenses/gpl-faq.en.html (and also on this very site). I strongly advise you to understand copyleft better before committing to a license. – Zimm i48 Apr 19 '17 at 15:47
  • 1
    By the way, it would be good if the repository on GitHub also included the text of the license in a LICENSE file (so that people who find your code through GitHub know right away under what license it is distributed). – Zimm i48 Apr 20 '17 at 10:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.