4

We need a JSON Schema Validator for .NET. The only library that we found is Newtonsoft Json Schema. The problem with this library is that has a "strange" AGPL license with limitations, from the site:

AGPL 3.0 : Free with limitations (1000 validations per hour)

Otherwise we should get a commercial license for each developer. Maybe the management will decide to buy the commercial license but my question is:

If we decide to rewrite it, it is fine/legal to use the same API interface? Basically rewriting all the actual validating code but keeping the same public method and properties name (changing only the namespace).

In other words is the interface of a library also under the AGPL license or only the implementation/algorithm?

  • Not sure if I can come up with the sources for a proper answer, but to the best of my knowledge you cannot license or copyright an API. It's always the source code that these restrictions apply to. You may wish to read about the case of Google vs Oracle with regards to Google's reimplementation of various Java APIs. – Ixrec Aug 26 '15 at 22:43
  • Notice that pending court decisions and legislative actions may change the legal aspect of that question. Current situation is that API is eligible for copyrights, but what constitutes a fair-use of API is not yet firmly decided. – rwong Aug 27 '15 at 01:28
  • For what it's worth, $149 is incredibly cheap for a royalty-free commercial license. There's no way you can write your own for less than that. – Robert Harvey Aug 27 '15 at 02:56
  • @RobertHarvey Thanks Robert, I agree with you. But just consider that the license is per developer, so in our case we need the license for an entire department, about 20 developers, $ 2980 not so cheap... – Davide Icardi Aug 27 '15 at 10:11
  • Right, but is it going to cost you more than $3000 to build the thing yourself? I'm guessing that might pay for 50 hours of developer time. Can you build an equivalent library in 50 developer hours? Do you even have 50 hours to spare? – Robert Harvey Aug 27 '15 at 15:17
  • Also, note that the Dojo Toolkit has a [JSON validator](https://dojotoolkit.org/reference-guide/1.10/dojox/json/schema.html) that is released under a less restrictive BSD license. – Robert Harvey Aug 27 '15 at 15:25

2 Answers2

3

For the record: a "Modified AGPL" that includes that limitation is not AGPL anymore, it's something else. For example, the Debian organization would not consider it FLOSS as it would violate the DFSG, as today.

The AGPL and GPL are about the implementation (aka the code), not data interchange formats like: APIs, network protocols, file formats.

It's worth noticing that this is no guarantee that the copyright owners will not sue you: they are always free to do so.

Federico
  • 138
  • 4
-2

Doing this would not be a good idea as it could put your company in violation of the license. The license covers all aspects of the source code including the APIs. In addition, if you changed all the code behind the API, it could still be interpreted that the code was derived from the original code and would have to comply with the original licensing.

Jason K.
  • 773
  • 6
  • 9
  • 3
    Sorry, but I don't agree. The purpose of the Affero GPL is to close the loophole of using a GPL'd software behind a public-facing API without distributing the source code. It says nothing about protecting the actual API design; in fact, there's precedent in the GPL that identifies the nature of the API as a distinction for the "linking restriction." Programs that communicate "at arms length" are not considered derivative works; the AGPL closes this loophole... – Robert Harvey Aug 27 '15 at 02:04
  • 1
    ...but neither the GPL nor the AGPL say anything about protecting the API itself; in fact, I believe such a restriction would run counter to the concept of "free software." The GPL is about source distribution, not about sealing off API's per se. It's *the code that fulfills the API specification* that is protected, not the specification itself. – Robert Harvey Aug 27 '15 at 02:06
  • 1
    When the lawyers at my workspace encountered this in the past, they indicated that the API was itself code and was thus bound by the license. This prevented us from creating a parallel equivalent API of our own for customers who could tolerate lower performance but were uncomfortable with having to distribute their extensions to our code. As academically correct as you might be, I wouldn't in any good conscience recommend that someone do this and be held out to dry as a consequence. – Jason K. Aug 27 '15 at 02:11
  • 1
    Thought experiment: What if I wrote an interface to the API specification in a different programming language? Would it still be covered under the license of the original source code? Copyright is not about ideas, it's about the *expression* of ideas, and with due respect to your lawyers, I think they're wrong. – Robert Harvey Aug 27 '15 at 02:13
  • Whether or not you think I am wrong or the lawyers were, the problem is that the person asking the question is treading in an area that could get them in trouble. Hence why I said that it "could" put their company in violation of the license. – Jason K. Aug 27 '15 at 02:15
  • 1
    Well, it's a license anyway, not a contract. All the JSON Schema folks have the power to do is compel a licensee to remedy a violation, and the licensee can do that in a number of ways (by buying a license, by discontinuing use of the software, etc.) – Robert Harvey Aug 27 '15 at 02:17