Skip to main content

Professional compression and encryption library with native C/C++ acceleration

Project description

fastCrypter

Professional Compression and Encryption Library with Native C/C++ Acceleration

Python Version License PyPI Version Downloads

fastCrypter is a powerful Python library that combines advanced compression and encryption techniques with native C/C++ acceleration for maximum performance. It provides a comprehensive suite of tools for secure data handling, from simple file encryption to complex custom encoding schemes.

Key Features

Advanced Encryption

  • Multiple Algorithms: AES-256-GCM, ChaCha20-Poly1305, RSA
  • Secure Key Management: PBKDF2, Argon2, secure random generation
  • Digital Signatures: RSA and ECC-based signing
  • Custom Encoding: User-defined character sets for obfuscation

High-Performance Compression

  • Multiple Formats: ZLIB, LZMA, Brotli, custom RLE
  • Adaptive Algorithms: Automatic best-fit selection
  • Native Acceleration: C/C++ libraries for critical operations
  • Memory Efficient: Streaming support for large files

Native Performance

  • C/C++ Libraries: Optimized crypto and hash operations
  • SIMD Instructions: Vectorized operations where available
  • Cross-Platform: Windows (.dll), Linux (.so), macOS (.dylib)
  • Automatic Fallback: Pure Python when native libs unavailable

Security Features

  • Secure Memory: Protected key storage and cleanup
  • Entropy Analysis: Data randomness validation
  • Side-Channel Protection: Constant-time operations
  • Audit Trail: Comprehensive logging and validation

Quick Start

Installation

# Install from PyPI
pip install fastcrypter

# Install with development dependencies
pip install fastcrypter[dev]

# Install with native compilation support
pip install fastcrypter[native]

Basic Usage

import fastcrypter

# Get the recommended compressor (automatically uses native acceleration if available)
compressor = fastcrypter.get_recommended_compressor(password="your_secure_password")

# Compress and encrypt data
data = b"Your sensitive data here"
encrypted = compressor.compress_and_encrypt(data)

# Decrypt and decompress
decrypted = compressor.decrypt_and_decompress(encrypted)
assert data == decrypted

Custom Encoding Example

from fastcrypter import CustomEncoder

# Create custom encoder with your character set
encoder = CustomEncoder(charset="abcdef98Xvbvii")

# Encode data
original = b"Hello, World!"
encoded = encoder.encode(original)
print(f"Encoded: {encoded}")

# Decode back
decoded = encoder.decode(encoded)
assert original == decoded

File Encryption

from fastcrypter import FileEncryptor

# Initialize file encryptor
encryptor = FileEncryptor(password="your_password")

# Encrypt a file
encryptor.encrypt_file("document.pdf", "document.pdf.encrypted")

# Decrypt the file
encryptor.decrypt_file("document.pdf.encrypted", "document_restored.pdf")

Native Compilation

fastcrypter includes C/C++ libraries for performance-critical operations:

Automatic Compilation

# Build native libraries
python build_native.py

# Build with specific compiler
python build_native.py --compiler gcc

# Build optimized release version
python build_native.py --release

Manual Compilation

# Using Make (Linux/macOS)
cd fastcrypter/native
make all

# Using MinGW (Windows)
cd fastcrypter/native
mingw32-make all

Performance Benefits

Native libraries provide significant performance improvements:

  • XOR Operations: 3-5x faster with SIMD instructions
  • Hash Functions: 2-3x faster SHA-256 and HMAC
  • Key Derivation: 2-4x faster PBKDF2
  • Compression: 1.5-2x faster RLE compression

Performance Benchmarks

# Run comprehensive benchmarks
results = fastcrypter.benchmark_available_features(data_size=1024*1024)
print(f"Native acceleration: {results['performance']['native']['available']}")
print(f"Speedup factor: {results['performance'].get('speedup', 'N/A')}")

Example results on modern hardware:

  • Standard Mode: ~50 MB/s compression + encryption
  • Enhanced Mode: ~150 MB/s with native acceleration
  • Memory Usage: <100MB for 1GB files (streaming)

Advanced Features

Enhanced Compressor

from fastcrypter import EnhancedCompressor

# Create enhanced compressor with native acceleration
compressor = EnhancedCompressor(
    password="secure_password",
    use_native=True,
    compression_level=6
)

# Check if native libraries are available
if compressor.is_native_available():
    print("Native acceleration enabled!")

Custom Algorithms

from fastcrypter.core import Compressor, CompressionAlgorithmType

# Use specific compression algorithm
compressor = Compressor(
    algorithm=CompressionAlgorithmType.BROTLI,
    level=9  # Maximum compression
)

Secure Key Management

from fastcrypter import KeyManager

# Generate secure keys
key_manager = KeyManager()
master_key = key_manager.generate_key(password="user_password", salt=b"unique_salt")

# Derive multiple keys from master key
encryption_key = key_manager.derive_key(master_key, b"encryption", 32)
signing_key = key_manager.derive_key(master_key, b"signing", 32)

Testing

fastcrypter includes comprehensive tests:

# Run all tests
python -m pytest tests/ -v

# Run with coverage
python -m pytest tests/ --cov=fastcrypter --cov-report=html

# Run performance tests
python -m pytest tests/test_performance.py -v

# Run native library tests
python final_test.py

Development

Setting Up Development Environment

# Clone repository
git clone https://github.com/Pymmdrza/fastCrypter.git
cd fastCrypter

# Install in development mode
pip install -e .[dev]

# Build native libraries
python build_native.py

# Run tests
python -m pytest

Code Quality

# Format code
black fastcrypter/ tests/

# Lint code
flake8 fastcrypter/ tests/

# Type checking
mypy fastcrypter/

Documentation

Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass
  6. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Cryptography: Built on industry-standard libraries
  • Performance: Inspired by high-performance computing practices
  • Security: Following OWASP and NIST guidelines
  • Community: Thanks to all contributors and users

Support


fastcrypter - Making encryption fast, secure, and accessible!

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

fastcrypter-2.3.9.tar.gz (53.1 kB view details)

Uploaded Source

Built Distribution

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

fastcrypter-2.3.9-py3-none-any.whl (50.1 kB view details)

Uploaded Python 3

File details

Details for the file fastcrypter-2.3.9.tar.gz.

File metadata

  • Download URL: fastcrypter-2.3.9.tar.gz
  • Upload date:
  • Size: 53.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for fastcrypter-2.3.9.tar.gz
Algorithm Hash digest
SHA256 9c305307f3f1dee1843fe99da1ba455aa5205a3e0f688300cdc203284113a6e7
MD5 8abb55546b870edf40933f5974a747db
BLAKE2b-256 2ac8b899acaa75724a174285fd59e24951cb681526da4f9a2b0e2d0aed0d5ae4

See more details on using hashes here.

File details

Details for the file fastcrypter-2.3.9-py3-none-any.whl.

File metadata

  • Download URL: fastcrypter-2.3.9-py3-none-any.whl
  • Upload date:
  • Size: 50.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for fastcrypter-2.3.9-py3-none-any.whl
Algorithm Hash digest
SHA256 2626a809f9ef991a2dbee34e811d35e344383f3ef6657e803263214d609c72e8
MD5 6268ef1f85fe36a846c5d582b75c5737
BLAKE2b-256 082ca0e502b1a7e872ea10778285d3e3d6343bd50de7737729c045afb43cd073

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