I'm looking at developing some commercial product (sell for money, only binaries, no sourcecodes). I have read up on open source licensing, but I just could not understand if what I want to achieve is possible. Will need some bros to walk me through.

Like I mentioned, I looking forward to create a simple commercial product, I might be looking at using json for communication. I saw quite a number of favorable comments for Jackson JSON.

Is it legally advisable for me to use it's library, but do not distribute my own source code? Or is there any other condition that I have to adhere to before I can sell my product without distributing my own source code? I won't be modifying the Jackson library at all, only calling its method. I definitely have no intention of paying to obtain a separate license to allow me not to distribute my source code.

If this is not feasible, any other json library that I can look at?

ps:I hope that there will not be answers directing me to read up on the license, as I have read, but do not understand the advise legally.

  • Jackson is dual licensed under LGPL and ASL - both allow you to link code with your project without needing to distribute your own code as open source. For the LGPL, the linking part is really important. Using the library under the ASL license allows even more freedom in how you want to use it, but you will definitely have to read about the requirements of use. But seriously, if you need real legal advice, get advice from a real lawyer.
    – wkl
    Commented Apr 27, 2012 at 16:29
  • @birryree ok, I can consider your point in using the ASL license. But actually how should I specify what license I'm intending to use in my application? Normally I would see other system just attach a license text file for the various file that they are using.
    – C_Rance
    Commented Apr 27, 2012 at 16:52

2 Answers 2


Here's the nitty-gritty on LGPL

You can link to (ie dll, module import) a LGPL module without requiring you to distribute the source code for that module.

You are not allowed to change or extend that code without submitting those changes back to the project. That means you can derive functionality from (ie inherit) but not extend the actual code internally (ie anything that would require a re-compile).

You also have to make the license visible and present to indicate that the library falls under that license when you distribute your software.

If it was GPL

The project that uses GPL code needs to make that code publicly available with the license present. The code can also only be used on a project that uses a similar or more copy-left (ie liberal) licensing scheme.

Both can be sold for money and/or paired with software that is sold for money as long as that software meets the terms.

  • Ok, you made it very clear for me. I think your answer will be simple and good for someone who needs the same help as me.
    – C_Rance
    Commented Apr 28, 2012 at 2:31

LGPL allows linking and distribution for what you want to do.

  • thank you then. But if it was GPL, then I would need to distribute my own source?
    – C_Rance
    Commented Apr 27, 2012 at 16:30
  • That, or figure out how to call their library from an open-source "shim" in your application. This is done often with a little RPC module. Commented Apr 27, 2012 at 17:09
  • ok, at least there is a sort of "workaround"
    – C_Rance
    Commented Apr 27, 2012 at 17:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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