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.)
Using Open Source code in a project
open source
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>