I'm having a little trouble in understanding how exactly Open Source licenses actually work. I have programmed for a while, but just for my personal use and I wrote all the code I needed myself.

As I'm thinking of making some apps for people and I need a fast XML parser, I thought I could use RapidXml. However, I'm not sure how it's going to be like under the license.
So, here's my question: if I use some code as part of my application, without any modification, how does it's license affect me? Exactly as if I was modifying it and distributing it? Do I have to publish my entire code?

Also, coding this app will require knowing the implementation of another open source project. Though, I'm going to write my code in a different language, i.e. I just need to know how it works for me to reproduce it. How does the license work here? (As a matter of fact, this one is GPLv3, and the other is not.)

1 Answer 1


There are lots and lots of different open source licenses which have lots and lots of different conditions and fine-prints. They all work differently.

RapidXML is dual-licensed under the MIT license and Boost License, and you are allowed to choose freely under which license you want to use it. They are both so-called permissive open source license. A permissive license allows you to modify and/or use the software as part of a product which is licensed under any license conditions you want. You don't need to publish your sourcecode, even when you modify the library. The only condition is that you place the original copyright message with the license conditions in the credits of your product so the end-users know that it uses the RapidXML library.

The GPL, however, is a different beast. It is a so-called copyleft or share-alike license, which means that any product which includes GPL-licensed code must also be licensed under the GNU GPL. However, when you reimplement features with completely original code and do not use any of the original code, you are creating an own work which is only bound to your license conditions. But be aware that a straight 1:1 translation into another programming language is a legal gray area. The GNU GPL FAQ says that this is not allowed:

What does the GPL say about translating some code to a different programming language?

Under copyright law, translation of a work is considered a kind of modification. Therefore, what the GPL says about modified versions applies also to translated versions.

<advertising>When you have more questions about open source licenses, you might want to commit to the new proposal Open Source Stackexchange. It still needs people to commit to it so it can go into beta phase.</advertising>

  • That makes it a lot clearer, thanks. I've still got a question though. The reimplementation I talked about refers to reproduce a UI-making engine that uses XML files. More accurately, there's a program that only works if you provide it a UI (or theme). I want to make a theme previewer, so people who make and/or use those UI's can save time. It won't do anything the actual program does, and I don't plan on translate it, just reproduce it's results and behaviors, with my own implementation. But, since that requires seeing the actual code, is it still attached to that prohibition?
    – Matheus PS
    Commented Apr 7, 2015 at 21:32
  • The problem is it would be extremely difficult for you to prove you were not influenced by seeing the other code.
    – Elin
    Commented Apr 8, 2015 at 2:59
  • Ok, got it. I'll stick to the license then. Thank you.
    – Matheus PS
    Commented Apr 9, 2015 at 4:21

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.