CyDifflib is a fast implementation of difflib's algorithms, which can be used as a drop-in replacement.
The following benchmark compares the performance in the original difflib implementation, the library cdifflib and CyDifflib
You can install this library from PyPI with pip:
pip install cydifflib
CyDifflib provides binary wheels for all common platforms.
For a source build (for example from a SDist packaged) you only require a C++11 compatible compiler. You can install directly from GitHub if you would like.
pip install git+https://github.com/rapidfuzz/CyDifflib.git@main
The library can be used in the same way as difflib. Just use the cydifflib
module instead of difflib
:
# from difflib import SequenceMatcher
from cydifflib import SequenceMatcher
The official documentation of difflib explains how to use the library. If you work with a library which internally uses some of the algorithms of difflib it is possible to replace the implementation before importing this library. E.g. for thefuzz
this can be done in the following way:
from cydifflib import SequenceMatcher
import difflib
difflib.SequenceMatcher = SequenceMatcher
from thefuzz import fuzz
PRs are welcome!
- Found a bug? Report it in form of an issue. Any difference in behavior to difflib is considered as a bug.
- Can make something faster? Great! Just avoid external dependencies and remember that external behavior does not change.
- Have no time to code? Tell your friends and subscribers about CyDifflib.
Thank you ❤️
Copyright 2021-present Max Bachmann. CyDifflib
is free and open-source software licensed under the MIT License.