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).
- Восстановленное сообщение (или
Лицензия
Авторы
Release files for reed-solomon-py 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reed_solomon_py-0.1.0.tar.gz | 7.4 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reed_solomon_py-0.1.0-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| reed_solomon_py-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.34+ x86-64 | Details |
Total release size: 512.2 kB
Release files / reed_solomon_py-0.1.0.tar.gz
| Download URL | reed_solomon_py-0.1.0.tar.gz |
|---|---|
| Size | 7.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
291ec12cd0edeae5e172f3b322687fecd2468d2c9b171d035453bf77de1076b8
|
|
BLAKE2b-256 checksum How to use checksums |
b3a152e3bafc81eb498a9d9931e68ee0cefa64cf6f1a9f816fe3c1077f1578bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.8.2
|
Release files / reed_solomon_py-0.1.0-cp312-cp312-win_amd64.whl
| Download URL | reed_solomon_py-0.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 200.8 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
334ede54390294f74787f1dab698360595c63932c3d4878ac6a2fa8041f14b4c
|
|
BLAKE2b-256 checksum How to use checksums |
a0523cae66d66455849180042bbe66560d07141d6096d6b983e42fa0cef958df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / reed_solomon_py-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | reed_solomon_py-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 304.0 kB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
92e3486b2396dc062c3e2957efbfcd35824eecbc56931a83b963b8dc94378140
|
|
BLAKE2b-256 checksum How to use checksums |
bb0923954ae12982df6fd73996f6f6c5ac64c8ffce2f4e14ace54868e69f71a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.8.2
|