A performant steganography and steganalysis library for hiding data in images, audio files, and videos
Project description
Pixelveil
A performant steganography and steganalysis library for hiding data in images, audio files, and videos!
Steganography can be used for watermarking, covert communications and info hiding in general. It is a relatively small but very versatile field in programming. This is a passion project I develop to learn, improve, and create steganography methods.
Main Repository
This README corresponds to the Python package of this project. For the latest updates on development, contributing, and future plans please consult the main repository.
Installation
This package is available on PyPI.
Installing via pip:
pip install pixelveil
Usage
This library leverages PyO3 to write python wrappers for the public interface of the Rust crate.
Even if you don't program in Rust, I encourage you to read the Rust documentation of the underlying Rust crate to have a good understanding of the Rust code that is called under the hood when the Python package is used.
Please note that pyo3_runtime.PanicException can be raised if the underlying Rust program panics. If a program panics, it means that the arguments that were passed in are invalid. An explanation will be included in the error message. Every function that panics intentionally will have an explanation of the exact case in the docstring.
If you are certain that the arguments that you passed in are valid but the function still panicked, open an issue on he subject.
Also note that, all functions that require an image (or images) as an argument(s) expect to receive bytes that describe an image in a known file format (e.g. PNG, JPEG, BMP...). They also return bytes that describe an image in a known format.
All the Python functions have docstrings that I recommend you read before using the function.
Modules
Each module name matches the name of the module it wraps. For example, the bpcs module in the Rust crate has a wrapper module that is named bpcs.
In the Rust crate, there is a whole module tree that might be hard to navigate.Because of this, the PyO3 modules are all at the top level of the Python package. This was solved in Rust using re-exports.
Functions
Each function is contained by the same module, and has the exact name as the Rust function it wraps. The argument types are slightly altered to adhere to Python's type system, but their order stays mostly the same.
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 Distributions
Built Distribution
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 pixelveil-1.0.1-cp314-cp314-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: pixelveil-1.0.1-cp314-cp314-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 2.9 MB
- Tags: CPython 3.14, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5e5116faa377eaf3468c3a4c7473a3fbde31418dc5fb5aa50fa5dce642f11df
|
|
| MD5 |
741ce92f721151fc9bf6306315004d92
|
|
| BLAKE2b-256 |
62ea4385e8cf3bc6dd36754aacd552db53a59c718d1f356c39006d0f93d39e83
|