Skip to main content

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

  1. Установите maturin:

    pip install maturin
    
  2. Клонируйте репозиторий:

    git clone https://github.com/kostya2023/reed_solomon_py.git
    cd reed_solomon_py
    
  3. Соберите и установите модуль:

    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).

Лицензия

LICENSE - MIT

Авторы

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reed_solomon_py-0.1.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

reed_solomon_py-0.1.0-cp312-cp312-win_amd64.whl (200.8 kB view details)

Uploaded CPython 3.12Windows x86-64

reed_solomon_py-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl (304.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

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

Hashes for reed_solomon_py-0.1.0.tar.gz
Algorithm Hash digest
SHA256 291ec12cd0edeae5e172f3b322687fecd2468d2c9b171d035453bf77de1076b8
MD5 4cf6cc7310e038e44bdf6ed3935c49e5
BLAKE2b-256 b3a152e3bafc81eb498a9d9931e68ee0cefa64cf6f1a9f816fe3c1077f1578bb

See more details on using hashes here.

File details

Details for the file reed_solomon_py-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for reed_solomon_py-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 334ede54390294f74787f1dab698360595c63932c3d4878ac6a2fa8041f14b4c
MD5 94ca279b9ed82d63b041d3340c7ad36b
BLAKE2b-256 a0523cae66d66455849180042bbe66560d07141d6096d6b983e42fa0cef958df

See more details on using hashes here.

File details

Details for the file reed_solomon_py-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for reed_solomon_py-0.1.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 92e3486b2396dc062c3e2957efbfcd35824eecbc56931a83b963b8dc94378140
MD5 177634bf3ffa5586d59d74b9c8f76f1b
BLAKE2b-256 bb0923954ae12982df6fd73996f6f6c5ac64c8ffce2f4e14ace54868e69f71a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page