MareArts Crystal
Python encryption library for software licensing and data protection. Simple, fast, and cross-platform.
🎯 Core Features
- Software Licensing - Generate and validate time-limited license keys with signatures
- File Encryption - Protect any file type with filename-based encryption
- Data Security - Encrypt strings, configs, and binary data with one line of code
💡 Why MareArts Crystal?
- Simple - Just
pip install marearts-crystaland start coding - Fast - Cython-compiled for C++ performance
- Compatible - Python 3.9-3.14, Windows/macOS/Linux
- Proven - Used in production by real businesses
Installation
pip install marearts-crystal
Requirements: Python 3.9-3.14, Windows/macOS/Linux
Quick Start
License Key Generation
from marearts_crystal import ma_crystal
mask = ma_crystal("your-company-secret")
# Generate license key with signature
today = mask.get_today_date() # "2025-09-12"
expire = mask.generate_end_date(years=1) # "2026-09-12"
license_key, signature = mask.generate_serial_key("customer@email.com", today, expire)
print(f"License Key: {license_key}")
# Output: License Key: MAEV2:gAAAAABow91CXuG7dJR3eAWpEXj67RP-qboPAHiDGpVfd2dGN5yBXp...
print(f"Signature: {signature}")
# Output: Signature: a21521da5beb6d7c
# Validate license
result = mask.validate_serial_key("customer@email.com", license_key)
if result:
start_date, end_date, signature = result
# start_date = "2025-09-12", end_date = "2026-09-12", signature = "a21521da5beb6d7c"
if mask.validate_date(start_date, end_date):
print(f"✅ License active until {end_date}")
# Output: ✅ License active until 2026-09-12
# Using signature for tracking
license_db = {} # Your database
# Store license with signature
license_key, signature = mask.generate_serial_key("user@email.com", today, expire)
license_db[signature] = {
"email": "user@email.com",
"key": license_key,
"created": today
}
# Later, verify and track
result = mask.validate_serial_key("user@email.com", license_key)
if result:
start, end, sig = result
print(f"License {sig} is valid") # Use signature as ID
File Encryption
# Encrypt file
with open("document.pdf", "rb") as f:
file_data = f.read() # Read original file (e.g., 241979 bytes)
encrypted = mask.encrypt_data(file_data)
print(f"Encrypted size: {len(encrypted)} bytes")
# Output: Encrypted size: 322724 bytes
with open("document.pdf.enc", "wb") as f:
f.write(encrypted)
# Decrypt file
with open("document.pdf.enc", "rb") as f:
encrypted_data = f.read()
decrypted = mask.decrypt_data(encrypted_data)
print(f"Decrypted size: {len(decrypted)} bytes")
# Output: Decrypted size: 241979 bytes (matches original)
with open("document_decrypted.pdf", "wb") as f:
f.write(decrypted)
print("✅ File successfully decrypted")
# Output: ✅ File successfully decrypted
More Examples
Python Examples (View on GitHub)
- License key generation and validation
- File encryption/decryption
- Config file encryption
- License manager class implementation
- Password vault implementation
- All API methods demonstration
Jupyter Notebook (Interactive Tutorial)
- Interactive step-by-step tutorial
- Visual output of each operation
- Real-time testing environment
API Reference
Basic Methods
| Method | Description | Example |
|---|---|---|
generate_serial_key(username, start_date, end_date) |
Generate a license key with signature | key, signature = mask.generate_serial_key("user", "2025-09-10", "2025-12-31") |
validate_serial_key(username, serial_key) |
Validate a license key | result = mask.validate_serial_key("user", key) # Returns (start_date, end_date, signature) |
encrypt_string(text) |
Encrypt text | encrypted = mask.encrypt_string("secret") |
decrypt_string(encrypted) |
Decrypt text | text = mask.decrypt_string(encrypted) |
encrypt_data(bytes) |
Encrypt binary data | encrypted = mask.encrypt_data(b"data") |
decrypt_data(encrypted) |
Decrypt binary data | data = mask.decrypt_data(encrypted) |
Utility Methods
| Method | Description | Example |
|---|---|---|
get_today_date() |
Get today's date (YYYY-MM-DD) | today = mask.get_today_date() |
generate_end_date(years, months, days) |
Calculate future date | expire = mask.generate_end_date(years=1) |
validate_date(start, end) |
Check if current date is in range | valid = mask.validate_date("2025-09-10", "2025-12-31") |
is_v2_serial_key(key) |
Check if key uses V2 format | is_v2 = mask.is_v2_serial_key(key) |
is_v2_data(data) |
Check if data uses V2 encryption | is_v2 = mask.is_v2_data(data) |
string_to_secret_key(input_string) |
Derive key from string | key = mask.string_to_secret_key("password") |
secret_key_to_string(secret_key, encrypted) |
Decrypt with provided key | text = mask.secret_key_to_string(key, encrypted) |
Maintainer CI/CD Layout
Root folder keeps only 3 main CI scripts:
./building_wheels.sh- build local Linux wheels./publish_wheels.sh- upload local artifacts to PyPI./trigger_github_action.sh- push release tag to trigger GitHub Actions (macOS/Windows wheels)
All helper scripts are under scripts/:
scripts/pipeline/- orchestrators and pipeline entry scriptsscripts/build/linux/- per-Python/per-arch Linux wheel buildersscripts/verify/- wheel and PyPI verification scriptsscripts/helpers/- utility scripts (version sync, helpers)scripts/legacy/- deprecated scripts kept for reference
Example maintainer flow:
./building_wheels.sh
./publish_wheels.sh
./trigger_github_action.sh
Optional helper commands:
./scripts/verify/verify_wheels_docker.sh
./scripts/verify/verify_pypi_install.sh
./scripts/helpers/update_version.sh
./scripts/pipeline/build_all_wheels.sh
🔗 MareArts AI Package Family
MareArts Crystal is part of our comprehensive AI and utility package ecosystem:
| Package | Description | Use Case |
|---|---|---|
| marearts-anpr 🚗 | License Plate Recognition | Vehicle identification, parking systems, traffic monitoring |
| marearts-road-objects 🛣️ | Road Object Detection | Traffic analysis, smart city applications, safety systems |
| marearts-crystal 🔐 | Encryption & Licensing | Software licensing, data security, key management |
| marearts-xcolor 🎨 | High-performance color extraction | Color detection apps, dominant color query systems |
Support
- Email: hello@marearts.com
- Website: marearts.com
License
MIT License
Metadata
Release files for marearts-crystal 2.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 3.6 MB
Release files / marearts_crystal-2.6.2-cp314-cp314-win_arm64.whl
| Download URL | marearts_crystal-2.6.2-cp314-cp314-win_arm64.whl |
|---|---|
| Size | 101.5 kB |
| Tags | CPython 3.14 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
ba6c948a6e880337bdc381256a82b941f84e8b62558b832350183dc1d8f70072
|
|
BLAKE2b-256 checksum How to use checksums |
45e9ed150ba4a365cdf837d8b21030ec001ae07d0dc9a8548286c64ab928ac82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp314-cp314-win_amd64.whl
| Download URL | marearts_crystal-2.6.2-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 115.0 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a3c360df314d846758e60d2586118ce51f36c8d37f69239779124dd00976eb85
|
|
BLAKE2b-256 checksum How to use checksums |
209eb4dea4d698c438b8641855e0f9a5fbae2560695abda0f54aa198edc3be94
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp314-cp314-manylinux2014_x86_64.whl
| Download URL | marearts_crystal-2.6.2-cp314-cp314-manylinux2014_x86_64.whl |
|---|---|
| Size | 139.0 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
43aef219019e1fc038e22c0a3461990c09c48aaef169eaa79887ddd5310ea2cf
|
|
BLAKE2b-256 checksum How to use checksums |
f1e76ee984ffce73c9aa4d039f5c314270a08ab8e901ca2f554d6bef07e8ba9d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp314-cp314-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.2-cp314-cp314-manylinux2014_aarch64.whl |
|---|---|
| Size | 128.9 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
89cc7f4957ff0c4fc67a694d9b51e0b167e6351b4e0434eb11cba59801900c9a
|
|
BLAKE2b-256 checksum How to use checksums |
a185dea4708cd9c51ce0cd8004b317435c39a5aefe1d86944c4df3528669ef42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp314-cp314-macosx_10_15_universal2.whl
| Download URL | marearts_crystal-2.6.2-cp314-cp314-macosx_10_15_universal2.whl |
|---|---|
| Size | 249.7 kB |
| Tags | CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
160c6b23fbc1d5ff7a17f1a7f0cce14d52f87cbf98f6bb4cb9136f77249ff15f
|
|
BLAKE2b-256 checksum How to use checksums |
adbd4c0eebd635423ec3325120d158158033bf647e9333529141f2ae0f7624e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp313-cp313-win_arm64.whl
| Download URL | marearts_crystal-2.6.2-cp313-cp313-win_arm64.whl |
|---|---|
| Size | 98.1 kB |
| Tags | CPython 3.13 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
70892a4a61dc1efad74dab0aa32c86d9c0f0b50274b2c63394cd060801549f7a
|
|
BLAKE2b-256 checksum How to use checksums |
490ec79431d3333bc0f5e29c29030218ebb1fae911cade65e73b6e146e3a1142
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp313-cp313-win_amd64.whl
| Download URL | marearts_crystal-2.6.2-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 113.2 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7c2817e350e0130d515139b341a871ba2785dfc201a98d1a47c5b56d3e89a4c9
|
|
BLAKE2b-256 checksum How to use checksums |
5840dcd326deb1efddf5ee32ed58895e0752c276244c96c998246431c343bf52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp313-cp313-manylinux2014_x86_64.whl
| Download URL | marearts_crystal-2.6.2-cp313-cp313-manylinux2014_x86_64.whl |
|---|---|
| Size | 139.0 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c7d82c34be22e7658e9833b66d736312cdbb45cbffb9f649d09f092eff54bbf1
|
|
BLAKE2b-256 checksum How to use checksums |
47bcdbbb06502c51ce6ecef6132d2ab91883f6b2253336ed04fe32e3f40a0ec0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp313-cp313-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.2-cp313-cp313-manylinux2014_aarch64.whl |
|---|---|
| Size | 127.1 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
684e9312137b6f99aa4261439156d7ebfcb0eaacb1bfac92298a596e16e3478c
|
|
BLAKE2b-256 checksum How to use checksums |
ace21649c0fb4936fe07be66c7c40dc320d88d41575f9910da800ba59737163d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp313-cp313-macosx_10_13_universal2.whl
| Download URL | marearts_crystal-2.6.2-cp313-cp313-macosx_10_13_universal2.whl |
|---|---|
| Size | 248.1 kB |
| Tags | CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
b72635b617888c0699d711d90494347e9aa48acfbe01247c6d7f6ddc1e21c426
|
|
BLAKE2b-256 checksum How to use checksums |
581c1f89af863e9e9086fe826bb6a2accd29058082943cbbba9e80cc55db66da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp312-cp312-win_arm64.whl
| Download URL | marearts_crystal-2.6.2-cp312-cp312-win_arm64.whl |
|---|---|
| Size | 98.8 kB |
| Tags | CPython 3.12 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
7da30c5eaadca75d242523d796310f6f03d0662236986599f1d66b4b8476ec8f
|
|
BLAKE2b-256 checksum How to use checksums |
0649feba7682aab6333f1c7dabb1aab778b05a1af12222db3f2c4c24840c14a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp312-cp312-win_amd64.whl
| Download URL | marearts_crystal-2.6.2-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 113.7 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
33c40706c315a475a28c6e26c6cc909220276ec00d0ad9b81a16675e4e76623d
|
|
BLAKE2b-256 checksum How to use checksums |
0430aba287ac9d62d99207f5f7d32243287d4176a9665d2ce025d232a06bec48
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp312-cp312-manylinux2014_x86_64.whl
| Download URL | marearts_crystal-2.6.2-cp312-cp312-manylinux2014_x86_64.whl |
|---|---|
| Size | 139.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
e246773202e3ccc53670339179809f1c88cdeac588738285ad63ddc69db387cc
|
|
BLAKE2b-256 checksum How to use checksums |
e47ced19e8a4de0296f150e7a30adb601d231ca93ba5659c9ed2204b6f1576a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp312-cp312-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.2-cp312-cp312-manylinux2014_aarch64.whl |
|---|---|
| Size | 127.3 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
5fa5d689ea9b95b48d3ceaff3c17329e928b721de1c6d75ca98d207078dd3aa1
|
|
BLAKE2b-256 checksum How to use checksums |
a30cbe36a25f407a8697507e5d4bb6947bf3d98d72ffbf62619a077e49093fab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp312-cp312-macosx_10_13_universal2.whl
| Download URL | marearts_crystal-2.6.2-cp312-cp312-macosx_10_13_universal2.whl |
|---|---|
| Size | 248.1 kB |
| Tags | CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
ba74890231d54ed4c065221f2bd03d0bbf03f7728132c33061a723191c9d87ca
|
|
BLAKE2b-256 checksum How to use checksums |
43d3cb9b027ebda49852635fd574e41d0483684fa17214409bb55ea1ec62f445
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp311-cp311-win_arm64.whl
| Download URL | marearts_crystal-2.6.2-cp311-cp311-win_arm64.whl |
|---|---|
| Size | 103.8 kB |
| Tags | CPython 3.11 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
a0d3cc8d7a2aca6305fe96f7bea3bf3aa639981d8423a3ae925f2ba66456e4e5
|
|
BLAKE2b-256 checksum How to use checksums |
7b2cb4c9dd1b4d948332e8ed8ee371639c8a419a41384a8686e6ddd9d199bf83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp311-cp311-win_amd64.whl
| Download URL | marearts_crystal-2.6.2-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 118.3 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
918d3182dde015b98dac6a9da84e099da78aa2127d8332fb182aa23980b63297
|
|
BLAKE2b-256 checksum How to use checksums |
41063eff33f639fda33f5d257c3d10c76c6eacec2609ce082e53da1528dcb5ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp311-cp311-manylinux2014_x86_64.whl
| Download URL | marearts_crystal-2.6.2-cp311-cp311-manylinux2014_x86_64.whl |
|---|---|
| Size | 138.3 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
aaf962eea08d26728a7b18bb1c9b96ca37ecbb0c4babd2da5474bdcf7e7034bc
|
|
BLAKE2b-256 checksum How to use checksums |
6ae10bcea6b679a1fe59a6f351a11ed5fe8465b8148580368507df2654f8e8c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp311-cp311-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.2-cp311-cp311-manylinux2014_aarch64.whl |
|---|---|
| Size | 128.6 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
3c950dde607b3bc00db560691546bf43b889b42f6984469edf6c5c4b83fbe75c
|
|
BLAKE2b-256 checksum How to use checksums |
6046f29b34b329aeef9bf25d2b74ae6b21acdb5608d5ddfe36306c6f0369b3e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp311-cp311-macosx_10_9_universal2.whl
| Download URL | marearts_crystal-2.6.2-cp311-cp311-macosx_10_9_universal2.whl |
|---|---|
| Size | 246.6 kB |
| Tags | CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
7f878f36ec5d04d5cb830943a76c2f885cd1d60ea26201eca88cece491a86b86
|
|
BLAKE2b-256 checksum How to use checksums |
0de4c5837ad9bd9474ca6f3a43d2b3af5cf780a461a491eda76323c0a919aff2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp310-cp310-win_amd64.whl
| Download URL | marearts_crystal-2.6.2-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 117.4 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
50718a6dd8f7eb5e880f3f9a3c2a7268ec62064ca479c8dfd88e25b22f7bdd87
|
|
BLAKE2b-256 checksum How to use checksums |
5b3e8038a66c5d3572db91b3388701ccea907f33e99cecdd2f1a356e48f10513
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp310-cp310-manylinux2014_x86_64.whl
| Download URL | marearts_crystal-2.6.2-cp310-cp310-manylinux2014_x86_64.whl |
|---|---|
| Size | 138.9 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
9ff7729886a43df93a7cb0622000ddab6954735e11c07e23f8a6fc1a1dbb15df
|
|
BLAKE2b-256 checksum How to use checksums |
e2e7123e4dca5574f41d594fa9c208ba2a4eba22232691292451de59851a1d07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp310-cp310-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.2-cp310-cp310-manylinux2014_aarch64.whl |
|---|---|
| Size | 129.4 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
e471c1db677d5e77abfff7bdb7208345110f354b8b8b0be1740a0992cf805963
|
|
BLAKE2b-256 checksum How to use checksums |
ca9f0cc555ca59dd2a659e341f9364b0517e56da0206cc4cde9cd0f10008c0c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / marearts_crystal-2.6.2-cp310-cp310-macosx_10_9_universal2.whl
| Download URL | marearts_crystal-2.6.2-cp310-cp310-macosx_10_9_universal2.whl |
|---|---|
| Size | 248.5 kB |
| Tags | CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
60b037e657d3d099052931523a0282be1a5e19bf71c8b9e91d49bd24d163a5ef
|
|
BLAKE2b-256 checksum How to use checksums |
d6de31b1c1ca9d2543016eea91f00142f2c7e3ba94ce130fb0c8013e83581e3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|