News for hackers. Stuff that matters.
Re:Show HN: RapidFuzz – A fast string matching library for P... by Hamuko on Monday March 30, 2020 @02:23AM (#22725693)
>RapidFuzz […] is using the string similarity calculations from FuzzyWuzzy.

>It is MIT licensed so it can be used whichever License you might want to choose for your project, while your forced to adopt the GPLv2 license when using FuzzyWuzzy

How is it using FuzzyWuzzy to be exact in order to be MIT licensed?

Re:Show HN: RapidFuzz – A fast string matching library for P... by maxbachmann on Monday March 30, 2020 @02:28AM (#22725721)
FuzzyWuzzy was MIT Licensed in the beginning, but then in 2011 decided to start using python-Levenshtein which is GPLv2 licensed and therefore the whole project got GPLv2 licensed. RapidFuzz is based on this version of FuzzyWuzzy: https://github.com/rhasspy/fuzzywuzzy and implements similar algorithms in C++
Re:Show HN: RapidFuzz – A fast string matching library for P... by edraferi on Monday March 30, 2020 @07:59AM (#22727279)
Good answer. Nice to see licensing issues taken seriously.
Re:Show HN: RapidFuzz – A fast string matching library for P... by maxbachmann on Monday March 30, 2020 @08:09AM (#22727344)
This was the main reason to write it. I wrote a small script searching github for projects that use FuzzyWuzzy and then sorted them based on their license into three lists a) GPL License b) Incompatible License c) no license. From these three only a) is licensed correctly. From 1k repositories only about 100 used the GPL, 300 an incompatible License and 600 no license at all. So I figured there has to be some interest in having a more open licensed alternative ;)
Re:Show HN: RapidFuzz – A fast string matching library for P... by Hamuko on Monday March 30, 2020 @02:31AM (#22725732)
Fair enough.
Re:Show HN: RapidFuzz – A fast string matching library for P... by akx on Monday March 30, 2020 @02:26AM (#22725711)
Looking at the source, RapidFuzz has reimplemented FuzzyWuzzy's similarity calculations in C++:

https://github.com/rhasspy/rapidfuzz/blob/c225979db3b02caccb...

https://github.com/seatgeek/fuzzywuzzy/blob/2188520502b86375...

I think (IANAL) that that clears it up - not using the same code, but the same algorithm.

Re:Show HN: RapidFuzz – A fast string matching library for P... by Hamuko on Monday March 30, 2020 @02:32AM (#22725735)
>not using the same code, but the same algorithm.

Is it really that clear cut?

Re:Show HN: RapidFuzz – A fast string matching library for P... by maxbachmann on Monday March 30, 2020 @02:35AM (#22725746)
Well it is completely reimplemented in C++ and I actually changed the algorithm in some places so it still gives the same results with a smaller time complexity. But it is still a derived work. Just not from the GPL licensed version: https://github.com/rhasspy/rapidfuzz/blob/master/LICENSE
Re:Show HN: RapidFuzz – A fast string matching library for P... by josegonzalez on Monday March 30, 2020 @12:12PM (#22729176)
Former fuzzywuzzy maintainer here.

We relicensed fuzzywuzzy mostly because I am not a lawyer and really just wanted to stop having the same argument with the same three people about whether what we were doing was legal. I actually think that we were violating the license by not including the license header on the included file, but were fine with the rest of the project being MIT, but again, not a lawyer, and the emails from the same ~3 people were becoming quite annoying.

Link here: https://github.com/seatgeek/fuzzywuzzy/issues/130

That said, if their interpretation is right, then unless you clean-roomed the reimplementation, that derivative is also GPL.

Again, not a conversation I personally care for, and I no longer work for SeatGeek so it's no longer really on me :)

Re:Show HN: RapidFuzz – A fast string matching library for P... by maxbachmann on Monday March 30, 2020 @12:29PM (#22729382)
Thats why I based it on a version before python-Levenshtein was even added to the project. The Levensthein part is just the normal levenshtein stuff that is a standard task at university I suppose, so it was definetly faster to implement this on my own instead of reading ugly C code. From my tests it is about as fast as the one used by python-Levenshtein (a little bit slower), but therefore I can read it ...