python bindings for reed solomon lib
Project description
Reed-Solomon Python Module (reed_solomon_py)
Библиотека reed_solomon_py предоставляет Python-интерфейс для работы с кодами Рида-Соломона, реализованными на Rust. Она позволяет кодировать данные с добавлением избыточности для коррекции ошибок, а также восстанавливать поврежденные данные.
Особенности
- Кодирование данных: Добавление избыточности для коррекции ошибок.
- Декодирование данных: Восстановление данных даже при наличии ошибок.
- Инвертирование битов: Данные выглядят как "случайные" байты.
- Встраивание метаданных: Количество байтов для коррекции встроено в данные.
Установка
Требования
- Python 3.7 или выше.
- Rust (для сборки модуля).
Установка через maturin
-
Установите
maturin:pip install maturin
-
Клонируйте репозиторий:
git clone https://github.com/kostya2023/reed_solomon_py.git cd reed_solomon_py
-
Соберите и установите модуль:
maturin develop --release
Использование
Пример кода
import reed_solomon_py
# Исходное сообщение
message = "Hello, Hold!"
ecc_bytes = 10 # Количество байтов для коррекции ошибок
# Упаковываем данные
packed_data = reed_solomon_py.pack_data(message, ecc_bytes)
print("Packed data:", packed_data)
# Распаковываем данные
restored_message, has_errors = reed_solomon_py.unpack_data(packed_data)
if has_errors:
print("Failed to restore data: The data is corrupted beyond repair.")
else:
print("Restored message:", restored_message)
Результат
Packed data: b'\xff\xff\xff\xff\xff\xff\xff\xf5\x97\x9a\x9b\x9b\x9c\xb2\xb5\x97\x9f\x9c\x9b\x9a\xb4\xff\xff\xff\xff\xff\xff\xff\xffl\xff\x14h8\x16\x83\xd3\xfe\x0a\x8c6\xef;\x9c\x14\x1c\xc4'
Restored message: Hello, Hold!
API
pack_data(message: str, ecc_bytes: int) -> bytes
Кодирует сообщение с добавлением избыточности для коррекции ошибок, инвертирует биты и прячет количество байтов для коррекции.
- Параметры:
message: Исходное сообщение (строка).ecc_bytes: Количество байтов для коррекции ошибок.
- Возвращает: Упакованные данные в виде байтов.
unpack_data(data: bytes) -> Tuple[Optional[str], bool]
Распаковывает данные, извлекает количество байтов для коррекции и восстанавливает сообщение.
- Параметры:
data: Упакованные данные в виде байтов.
- Возвращает: Кортеж из двух элементов:
- Восстановленное сообщение (или
None, если данные невозможно восстановить). - Флаг ошибки (
True, если данные невозможно восстановить, иначеFalse).
- Восстановленное сообщение (или
Лицензия
Авторы
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reed_solomon_py-0.1.0.tar.gz.
File metadata
- Download URL: reed_solomon_py-0.1.0.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
291ec12cd0edeae5e172f3b322687fecd2468d2c9b171d035453bf77de1076b8
|
|
| MD5 |
4cf6cc7310e038e44bdf6ed3935c49e5
|
|
| BLAKE2b-256 |
b3a152e3bafc81eb498a9d9931e68ee0cefa64cf6f1a9f816fe3c1077f1578bb
|
File details
Details for the file reed_solomon_py-0.1.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: reed_solomon_py-0.1.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 200.8 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
334ede54390294f74787f1dab698360595c63932c3d4878ac6a2fa8041f14b4c
|
|
| MD5 |
94ca279b9ed82d63b041d3340c7ad36b
|
|
| BLAKE2b-256 |
a0523cae66d66455849180042bbe66560d07141d6096d6b983e42fa0cef958df
|
File details
Details for the file reed_solomon_py-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: reed_solomon_py-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 304.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92e3486b2396dc062c3e2957efbfcd35824eecbc56931a83b963b8dc94378140
|
|
| MD5 |
177634bf3ffa5586d59d74b9c8f76f1b
|
|
| BLAKE2b-256 |
bb0923954ae12982df6fd73996f6f6c5ac64c8ffce2f4e14ace54868e69f71a7
|