Q: Why this library? A: Because I was shaping new versioning system, rather an experiment for myself than anything dedicated for a real-world usage, and I wanted to break it up to lesser steps. And I thought that other people could use some of the functionality as well. First, I had librcs on my mind, but it showed up that it would be nice to have means for generic manipulation of stuff, so that I could do more format-specific libraries and so on. So it turns out that PaVS will be merely a smart frontend for this library ;-). Q: Why this licence? A: Usually, I prefer GPL. But usually, I do applications. With a "smart" libraries it is similiar, if effort significant enough went to it and it is worth it, GPL is just fine. But I believe that libraries merely serving as a certain frameworks (librev) or file decoders (librcs) should noone have to ever re-create, for the sake of interoperability and just because it is too trivial and annoying to do it again and again, be it a monster hating free software and wanting to destroy us all (-- Linus Torvalds [about klibc licence choice (BSD ;)], loosely quoted). Applications using this library are encouraged to use GPL or a similiar free software licence. Q: I have read the licence and even though it looks as BSD licence, it appears to be modified somehow...? A: I do not have particular fondness of the no-endorsement clause, and I even considered removing it from the licence altogether (effectively turning it into a MIT licence). I can see its usefulness as well as its harm. And while this clause prevents big commercial products using your product's name in their advertisement, I have nothing against various tiny opensource clones of my library openly advertising that they are based on librev. Thus, I have chosen a compromise and exempted products licenced ONLY under open-source free (OSI approved) licences from the no-endorsement clause. If anyone wants to (dual-) licence their product under a closed-source licence, they should ask me for a permission. And I openly say that as long as I will be librev maintainer, I will want some reasonable amount of money in exchange for the permission, so that they will effectively support PaVS development if they want to use it in their advertisement. Q: Why are you using your own diff implementation? A: Because I found no other under BSD licence! It's pathetic. There's libgdiff of GNU diff, under GPL. Then there is libsvn_diff, which is under Apache/BSD licence, and thus it would taint librev in such a way that it would be incompatible with GPL. And that's about it. OpenCM has some fragment of some code, but it is incomplete. I might very well use it in future, though.