Skip to main content

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

Авторы

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)

Source distribution for reed-solomon-py 0.1.0
File Size Uploaded
reed_solomon_py-0.1.0.tar.gz 7.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for reed-solomon-py 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page