Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/btwael/superstring.py
A fast and memory-optimized string library for heavy-text manipulation in Python
https://github.com/btwael/superstring.py
memory-optimization optimization python python3 string string-manipulation
Last synced: 15 days ago
JSON representation
A fast and memory-optimized string library for heavy-text manipulation in Python
- Host: GitHub
- URL: https://github.com/btwael/superstring.py
- Owner: btwael
- License: mit
- Created: 2020-03-19T03:47:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-04-22T09:20:49.000Z (over 4 years ago)
- Last Synced: 2024-09-20T06:11:04.621Z (about 2 months ago)
- Topics: memory-optimization, optimization, python, python3, string, string-manipulation
- Language: Python
- Homepage:
- Size: 158 KB
- Stars: 250
- Watchers: 9
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# superstring.py
**superstring.py** is an efficient library for heavy-text manipulation in Python, that achieves a remarkable memory and CPU optimization.**superstring.py** uses Rope (data structure) and optimization techniques.
## Performance example
![alt text](https://github.com/btwael/superstring.py/raw/master/misc/comparison.png?raw=true "Comparison of superstring.py and python built-in string")
*The two plots show the comparison in terms of memory consumption and execution time between **superstring.py** and python build-in string (the comparison program consists of appending to a list all possible substrings of a 50000 bytes text).*
## Features
- **Fast** and **Memory-optimized**.
- Rich API.
- Similar functionalities to python built-in string
- Easy to embed and use.
- **MIT Licence**## Installing
```shell
pip install superstring
```## How to use
```python
from superstring import SuperStringstring1 = SuperString(" This is ")
string2 = SuperString("SuperString! ")# concatenation
string = string1 + string2 # " This is SuperString! "
print(string)# length
len(string)
string.length()# character
string[10] # "S"
string.characterAt(10) # "S"# substring
string[10:21] # "SuperString"
string.substring(10, 21) # "SuperString"# strip
string.strip() # "This is SuperString!"# lower
string.lower() # " this is superstring! "# upper
string.upper() # " THIS IS SUPERSTRING! "```
## Roadmap
- [ ] Optimize even more (I think it's possible :sunglasses:)
- [x] Support for negative indexing
- [ ] More benchmark and memory profiling## Contribute and support
You have any feature idea, a bug to correct or an improvement, feel free to [open a issue]( https://github.com/btwael/SuperString/issues) or [send your pull request](https://github.com/btwael/SuperString/pulls).
You can also support the author of **superstring.py** via [Paypal](https://www.paypal.me/btwael).## LICENCE
MIT LICENCE