Metadata-Version: 2.4
Name: cryptopyx
Version: 0.1.1
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering
Classifier: Natural Language :: English
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Operating System :: OS Independent
Classifier: Typing :: Typed
License-File: LICENSE
Summary: A simple cryptography package written in Rust
Keywords: cryptography,cipher,encryption,decryption,security
Author-email: Siqi Yan <syan235711@gmail.com>
License-Expression: MIT
Requires-Python: >=3.9
Description-Content-Type: text/x-rst; charset=UTF-8
Project-URL: Repository, https://github.com/syan212/CryptoPyX
Project-URL: issues, https://github.com/syan212/CryptoPyX/issues
Project-URL: Changelog, https://github.com/syan212/CryptoPyX/blob/main/CHANGELOG.md

#########
CryptoPyX
#########

.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
    :target: https://github.com/astral-sh/ruff
    :alt: Ruff

.. image:: https://img.shields.io/pypi/pyversions/cryptopyx
    :target: https://pypi.org/project/cryptopyx/
    :alt: PyPI - Python Version

.. image:: https://img.shields.io/pypi/v/cryptopyx?label=PyPI%20Version&color=blue
    :alt: PyPI - Version
    :target: https://pypi.org/project/cryptopyx/#history

.. image:: https://img.shields.io/pypi/dm/cryptopyx?label=PyPI%20Downloads&color=blue
    :alt: PyPI - Downloads
    :target: https://pypi.org/project/cryptopyx/

.. image:: https://github.com/syan212/CryptoPyX/actions/workflows/CI.yml/badge.svg
    :target: https://github.com/syan212/CryptoPyX/actions/workflows/CI.yml
    :alt: CI Status

.. image:: https://github.com/syan212/CryptoPyX/actions/workflows/dependabot/dependabot-updates/badge.svg
    :target: https://github.com/syan212/CryptoPyX/actions/workflows/dependabot/dependabot-updates
    :alt: Dependabot Status

.. image:: https://github.com/syan212/CryptoPyX/actions/workflows/pypi.yml/badge.svg?event=release
    :target: https://github.com/syan212/CryptoPyX/actions/workflows/pypi.yml
    :alt: Publish to PyPI Status

.. image:: https://img.shields.io/github/license/syan212/cryptopyx
    :target: https://github.com/syan212/CryptoPyX/blob/main/LICENSE
    :alt: License

A simple python cryptography package written in Rust.

Installation guide
==================

Install from PyPI

::
    
   pip install cryptopyx

Or get the source code from github and build from source.
See `building from source <#building-from-source>`_ for more information.

Example Usage
=============

::

   from cryptopyx.ciphers import caesar
   caesar.encrypt('ABC', 3) # DEF
   caesar.decrypt('DEF', 3) # ABC


Documentation
=============

Due to the fact that there is no documentation, please refer to the code itself for now.

.. _build-from-source:

Building From source
====================

Notice
------

It is possible to install the package without Rust, as maturin can install a temporary Rust toolchain.
However, it is recommended to have Rust installed to avoid any issues.

To build from source without Rust after cloning the repository, run:: 

   pip install maturin
   maturin build --release --out dist
   pip install dist/cryptopyx-*.whl # You might have to use `pip3` instead of `pip`

Advanced full build instructions
---------------------------------

To build from source, you need to have Python, Rust and Cargo installed.
This package uses `maturin <https://www.maturin.rs/>`_ to build the package.
It requires Python 3.9 or higher and Rust 1.85.0 or higher.

If you don't have Python installed, please refer to <https://www.python.org/downloads/>.
If you don't have Rust and Cargo installed, please refer to <https://www.rust-lang.org/tools/install>.

Then clone the repository
:: 

   git clone https://github.com/syan212/CryptoPyX.git
   cd CryptoPyX

The install the build tools using pip (I recommended using a virtual enviroment for this)
::

   pip install -r requirements-dev.txt

Then build the package using maturin and install it
::

   maturin build --release --out dist
   pip install dist/cryptopyx-*.whl # You might have to use `pip3` instead of `pip`

