UprootLabs / poly-flif

:camera: A poly-fill for the FLIF image format.
https://uprootlabs.github.io/poly-flif/
Other
244 stars 11 forks source link

use cheerp ? #16

Open hrj opened 8 years ago

hrj commented 8 years ago

I just came across cheerp, which seems to have one big advantage over emscripten: No flat memory space; uses native JS objects.

I am not sure what the performance would be like.

The license is also a bit complex: http://www.leaningtech.com/cheerp/buy/index.html I am not sure if the LGPL libraries would be allowed by their license.

jonsneyers commented 8 years ago

Looks interesting! The license does not seem to be a problem. The license of the runtime/libraries is what is important, and that is licensed as GPLv2+, which means you can choose to consider it to be GPLv3+ and then it is fully compatible with the (L)GPLv3+ FLIF code. You could distribute the combined thing (including precompiled JS with all needed cheerp libraries included) under the terms of the GPLv3+.

hrj commented 8 years ago

@jonsneyers Thanks. Yes, that was my understanding as well. But, effectively poly-flif would not be LGPL for those downstream because they would be forced to comply with GPL. Is that correct?

jonsneyers commented 8 years ago

Yes, though you could provide both an emscripten and a cheerp version, in case someone needs LGPL. Also, if someone would need an LGPL poly-flif+cheerp, I suppose they could ask permission or pay the cheerp people for that (it's not explicitly listed on the page, but I would assume they would be open to that).

What "downstream" applications do you have in mind for poly-flif? I was assuming that it would just be a JS "blob" that gets included on web pages that wish to use .flif images.

hrj commented 8 years ago

What "downstream" applications do you have in mind for poly-flif? I was assuming that it would just be a JS "blob" that gets included on web pages that wish to use .flif images.

I think the GPL may apply to all code of a web-page, if one of the blobs is GPL. Especially, any code that calls to the poly-flif API. Though I am not sure about that.