mgholam / fastJSON

Smallest, fastest polymorphic JSON serializer
https://www.codeproject.com/Articles/159450/fastJSON-Smallest-Fastest-Polymorphic-JSON-Seriali
MIT License
479 stars 147 forks source link

License of fastJSON #109

Closed jespersmith closed 3 years ago

jespersmith commented 5 years ago

I can't seem to find license information in the code repository.

Can a license be provided? If no decision has been made on a license, I would prefer the Apache 2.0 license or a license such that fastJSON can be used together with a project licensed under the Apache 2.0 license.

A list of licenses compatible with the Apache 2.0 is available here: https://www.apache.org/legal/resolved.html#category-a

mgholam commented 5 years ago

The license on CodeProject is CPOL, over the years many have complained about this and that license and I have changed it multiple times. My answer to all the people asking is you are free to use the source in any way you require, barring harm to others. PS: I believe the last iteration was Apache 2.

jespersmith commented 5 years ago

Thank you for your quick answer. Can you add a License.txt (or License.md) file to the source tree? I missed the link to codeproject on top of the github page and it is not very clear on the license either.

I looked into CPOL and it will work for us now, as the project we use fastJSON in is commercial only.

If we decide to open source code that depends on fastJSON we will unfortunately have to switch to a different library, as we cannot release our code under the CPOL and I cannot include fastJSON in a Apache 2.0/GPL/etc licensed project. This is because the CPOL adds extra restrictions on top of the major open source licenses (section 5). See https://www.gnu.org/licenses/license-list.en.html#cpol for a quick explanation.

pdinklag commented 4 years ago

My answer to all the people asking is you are free to use the source in any way you require, barring harm to others.

If this is the case, please select a license that states so and make it visible somewhere, preferably as @jespersmith proposed in some license file in the repository root. You could even put that sentence you wrote in there and it would suffice (I'd personally translate it to CC0). Right now you can only find licensing information by looking at this issue or finding the CodeProject page (which, however, is no longer up to date to 2.3.2). That's pretty bad if some day, for whatever reason, CodeProject or GitHub are gone.

In any event, thank you for writing this library! 😃

pdinklag commented 3 years ago

Since this issue (as well as quite some others) has been closed following updates in @hamarb123's fork, are there any plans to update this repository at all anymore, or should we interpret it so that we should switch to that fork?

hamarb123 commented 3 years ago

Since this issue (as well as quite some others) has been closed following updates in @hamarb123's fork, are there any plans to update this repository at all anymore, or should we interpret it so that we should switch to that fork?

I'm not planning to add any new features, just porting whatever @mgholam adds. My fork's purpose is if you want fully conformant json5 support whereas @mgholam's is to be as fast as possible. You'll notice that I changed the description to "Very fast, conformant, and polymorphic JSON5 serializer" from "Smallest, fastest polymorphic JSON serializer."

If you want to use a fast library that is mostly conformant, use @mgholam version, but if you want it to be fully conformant with all of the json5 features, use mine. And if you want to add new features in a PR, I would probably advise you to add it to @mgholam's version, and then I'll port it to mine (unless they're json5 specific or are a conformance fix). You'll notice in my repo that I've renamed as few files as possible as to make the merging easy.

I have no plans to replace in its entirety @mgholam's version, and if @mgholam stopped updating theirs, I'd probably not add very many new features other than fixes to bugs I or others encounter because my version is simply a fork of his with additional features (rest of json5 spec) and full conformance. If @mgholam wanted to add of the features that I've added they could, but I'd still keep mine with the full conformance.

In short: my fork will coexist with @mgholam version, if you want to commit additional features, add them here. Use mine if you want full json5 conformance, otherwise you can use this version. That's what I think anyway.

pdinklag commented 3 years ago

OK, thank you for the heads-up!

However, then, this issue should not be closed: there is still no license information in the repository.

I noticed that the code project link is dead by now, but a new, recently updated one seems to be here and there it is under CPOL. All that's really neeed is a copy of the CPOL in a file called LICENSE, then things should be sorted for Github.

mgholam commented 3 years ago

I've added a license file and the broken link is fixed :)

jespersmith commented 3 years ago

Awesome, I see you added the MIT license, which really plays well with other Open source licenses!

@hamarb123 I see you added the Apache2.0 license to your repo, maybe that should be the same as @mgholam . If you have permission to relicense to Apache 2.0 then ignore this comment.

hamarb123 commented 3 years ago

Awesome, I see you added the MIT license, which really plays well with other Open source licenses!

@hamarb123 I see you added the Apache2.0 license to your repo, maybe that should be the same as @mgholam . If you have permission to relicense to Apache 2.0 then ignore this comment.

Don't worry, I relicensed as MIT it a few hours ago (see https://github.com/hamarb123/fastJSON5/blob/master/LICENSE). I originally did it as Apache 2 because of the following comment: image