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.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 10.5 MB
Release files / marearts_crystal-2.6.0-cp314-cp314-win_arm64.whl
| Download URL | marearts_crystal-2.6.0-cp314-cp314-win_arm64.whl |
|---|---|
| Size | 94.7 kB |
| Tags | CPython 3.14 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
9fb085782a5cfc8eb6e41c3051094b189f8749bd8bfb5796c8c253357fea9d5f
|
|
BLAKE2b-256 checksum How to use checksums |
b6afe58c8335053f1bd3da81df91f1de9fa525aa7dc9e7a17e6e7352a020ee4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp314-cp314-win_amd64.whl
| Download URL | marearts_crystal-2.6.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 116.1 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1b77184cf39cabb15d9054c197cc61a4a40bf525a74dab2ebee7f5232573fb52
|
|
BLAKE2b-256 checksum How to use checksums |
b23163c9b0688ece8ce89904ba47307b41ba70f6cd9ddf4d1a62ad5e308b8d31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp314-cp314-manylinux2014_x86_64.whl
| Download URL | marearts_crystal-2.6.0-cp314-cp314-manylinux2014_x86_64.whl |
|---|---|
| Size | 904.2 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
598a9ea8c2744525670bb6c35de785ccb945e17da3e12816fd1867859a425df3
|
|
BLAKE2b-256 checksum How to use checksums |
ff0f1b3fe1d44b59509307e6f5c4546b944342e4cb388c2389e42216e803ced0
|
| 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.0-cp314-cp314-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.0-cp314-cp314-manylinux2014_aarch64.whl |
|---|---|
| Size | 894.5 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
07a039125848ac764cef0ddf3274993107b3fac1f36a334f5321701fd1e66eb8
|
|
BLAKE2b-256 checksum How to use checksums |
018152b1fd6ec27faa61c12a8904b7229286667193783a8631cbe4cdedff2f01
|
| 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.0-cp314-cp314-macosx_10_15_universal2.whl
| Download URL | marearts_crystal-2.6.0-cp314-cp314-macosx_10_15_universal2.whl |
|---|---|
| Size | 274.5 kB |
| Tags | CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
b768609a780747b3a4c74220fad00b11b3a7bbcd718e65eaa768f827efdef636
|
|
BLAKE2b-256 checksum How to use checksums |
f0aace4ae5d3cfb7faaaeb465f131d28b1563279df71e845a1512e34bfa3234c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp313-cp313-win_arm64.whl
| Download URL | marearts_crystal-2.6.0-cp313-cp313-win_arm64.whl |
|---|---|
| Size | 91.4 kB |
| Tags | CPython 3.13 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
16198c777c714d3eb65b084ded623cf4c965afbd28145a5e8d770425f5cdffc9
|
|
BLAKE2b-256 checksum How to use checksums |
91d2d1bae2e9ef66a1d11be3ef273f31081dff08a27dc1b9a3f316c143426cb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp313-cp313-win_amd64.whl
| Download URL | marearts_crystal-2.6.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 113.8 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f2f7e29f607bca8a6c2b65f63992b5f5a8a4939631e15461c9c51844d8a70e90
|
|
BLAKE2b-256 checksum How to use checksums |
3d02b5b7bf8f8b385b51c5f2759b42132d61c42afa91ea6598148df12976d8b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp313-cp313-manylinux2014_x86_64.whl
| Download URL | marearts_crystal-2.6.0-cp313-cp313-manylinux2014_x86_64.whl |
|---|---|
| Size | 916.6 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
e0fe9d988b15211d91c708c3aca3f396cf69c20c53839aeceb66aa83bb6fbdcf
|
|
BLAKE2b-256 checksum How to use checksums |
dbec162142850b58f4b05036aee551009e1d19e85011eb1c5c1b5ad1e5bfad67
|
| 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.0-cp313-cp313-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.0-cp313-cp313-manylinux2014_aarch64.whl |
|---|---|
| Size | 896.1 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
6f81320733ea1e2bee91b1ca2a6123f469b769c6d403cb3090a09b687ce6e438
|
|
BLAKE2b-256 checksum How to use checksums |
48a63d33245370437f3740b5de0598aa7fb35257ed6b35f3d9187fa889cc6adf
|
| 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.0-cp313-cp313-macosx_10_13_universal2.whl
| Download URL | marearts_crystal-2.6.0-cp313-cp313-macosx_10_13_universal2.whl |
|---|---|
| Size | 272.6 kB |
| Tags | CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
2bcb82f806bb7d13a8b4a0e8e41e38db9877529fe1b6f0047aff9c88324224d4
|
|
BLAKE2b-256 checksum How to use checksums |
e505561514d3ffc5743f866f0b62ec0e1752f1e319e2ed92ff6e1848d36d5a61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp312-cp312-win_arm64.whl
| Download URL | marearts_crystal-2.6.0-cp312-cp312-win_arm64.whl |
|---|---|
| Size | 91.6 kB |
| Tags | CPython 3.12 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
38a3659e59fd1b4b7d01900c030d89302770c82b4fe0c191c6acd9394f6f9d99
|
|
BLAKE2b-256 checksum How to use checksums |
e14992acc4a892e2fa6590fc560dacaf108b6a4f5b65d9f73844832f8c6478c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp312-cp312-win_amd64.whl
| Download URL | marearts_crystal-2.6.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 114.2 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2b47f364172f69f7b35fa705de1d1f7361493427a82f7e4f86f6f0b7e33fad80
|
|
BLAKE2b-256 checksum How to use checksums |
b77f0cbc3855d2f56d8553575220da35a7b043defa0e7411ab8cc6d72f42ab99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp312-cp312-manylinux2014_x86_64.whl
| Download URL | marearts_crystal-2.6.0-cp312-cp312-manylinux2014_x86_64.whl |
|---|---|
| Size | 920.1 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1c4d5f662a23eb41e54629b61e9a68e11f186e66890c386179576cba7d5a478c
|
|
BLAKE2b-256 checksum How to use checksums |
750ef903795252d8018d8220a5b9b570438624862eca6f575a3bf18bb8c1df20
|
| 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.0-cp312-cp312-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.0-cp312-cp312-manylinux2014_aarch64.whl |
|---|---|
| Size | 899.5 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
a99d6d47ab637731cc2a5949a6b8e52d0a360f6087a76319f24685395596b27b
|
|
BLAKE2b-256 checksum How to use checksums |
dcab3fc740c870add1165ab77b069032f78eb8478066404d4c8b9bd3a4deca24
|
| 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.0-cp312-cp312-macosx_10_13_universal2.whl
| Download URL | marearts_crystal-2.6.0-cp312-cp312-macosx_10_13_universal2.whl |
|---|---|
| Size | 273.0 kB |
| Tags | CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
589dd7d9281ca776b40ce92bc1ff0a6c1b252223812c58b0063cec5629de37df
|
|
BLAKE2b-256 checksum How to use checksums |
55e857d487caffa685ded062e6549be7f031e0180044dba4cae59fc9e41b7322
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp311-cp311-win_arm64.whl
| Download URL | marearts_crystal-2.6.0-cp311-cp311-win_arm64.whl |
|---|---|
| Size | 97.4 kB |
| Tags | CPython 3.11 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
4bfbcef436fcb9ebfb4b151f2224518e77f2c048d205a51168af4cd734cafcc3
|
|
BLAKE2b-256 checksum How to use checksums |
2dff59de410f59e74b27dcf0b5d70f39cd7eb6c7ebcfb55497ba47f957979381
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp311-cp311-win_amd64.whl
| Download URL | marearts_crystal-2.6.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 117.9 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7282030cd2139dc4a5b1d62b69872848f49012dbc462f7f3732c734c8968594a
|
|
BLAKE2b-256 checksum How to use checksums |
fea00af8a2ced0e0c21be5e2b70ba3a1933b1b93275524cdb35663e407d61326
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp311-cp311-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.0-cp311-cp311-manylinux2014_aarch64.whl |
|---|---|
| Size | 957.2 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
fa9d13c4e79be9d5b81330c7fdaf1b5111e29173820783be78aae1f33cf0c1ce
|
|
BLAKE2b-256 checksum How to use checksums |
81202c620e4512e9fd36c05abf9918d1907df2c2532ac3c79f6686a8f3835385
|
| 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.0-cp311-cp311-manylinux1_x86_64.whl
| Download URL | marearts_crystal-2.6.0-cp311-cp311-manylinux1_x86_64.whl |
|---|---|
| Size | 150.4 kB |
| Tags | CPython 3.11 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
f3379cf1dfd3581209bfe02c0cccd93ecb9bb519565c031298d417de49e39514
|
|
BLAKE2b-256 checksum How to use checksums |
096c5887c64cce22792419144ab8e22069abbb618a22792f1b41e7f102a1944e
|
| 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.0-cp311-cp311-macosx_10_9_universal2.whl
| Download URL | marearts_crystal-2.6.0-cp311-cp311-macosx_10_9_universal2.whl |
|---|---|
| Size | 269.2 kB |
| Tags | CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
b47a110f844ae17a06e83126679f21a484a6b252c9637a59fb03cf5ee18ec71e
|
|
BLAKE2b-256 checksum How to use checksums |
19b16aeececce2d75b840f609a7ebb04258657b8e6c43bef77078f0d6d299350
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp310-cp310-win_amd64.whl
| Download URL | marearts_crystal-2.6.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 117.6 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
9bf1e18579969d346324c05f39d7c1421fef9dfffd44e046282dd3f93e6685a8
|
|
BLAKE2b-256 checksum How to use checksums |
b9c684dacc6864e44fc8b1fc5d466d736b2645070af51b6162522143a68a92da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / marearts_crystal-2.6.0-cp310-cp310-manylinux2014_aarch64.whl
| Download URL | marearts_crystal-2.6.0-cp310-cp310-manylinux2014_aarch64.whl |
|---|---|
| Size | 893.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
678164dc85b6f63a64550aafea8518d9c81711b0bfe03b45a2522b8995ca4460
|
|
BLAKE2b-256 checksum How to use checksums |
289aedd73d5a5ce15974981d84839e1290702b3f553684747b1e510e621aa9ac
|
| 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.0-cp310-cp310-manylinux1_x86_64.whl
| Download URL | marearts_crystal-2.6.0-cp310-cp310-manylinux1_x86_64.whl |
|---|---|
| Size | 783.9 kB |
| Tags | CPython 3.10 Linux glibc 2.5+ x86-64 |
|
SHA-256 checksum How to use checksums |
036e9460c9bf217f0bfa3cf2e48047eb4da6225bdafbabc85e30086809a6dbe8
|
|
BLAKE2b-256 checksum How to use checksums |
9592ecd130a0a32dc5ba2bb5ae3ae868787e620121cbe537a342cc5ceb94951f
|
| 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.0-cp310-cp310-macosx_10_9_universal2.whl
| Download URL | marearts_crystal-2.6.0-cp310-cp310-macosx_10_9_universal2.whl |
|---|---|
| Size | 271.9 kB |
| Tags | CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
f6ab9685645b11b4ce06298cf8ffb23aa0303e4a4da693c1b20722d89862e60f
|
|
BLAKE2b-256 checksum How to use checksums |
b73031d24338d1e16579a08b88d3176b7287c926f26bfe71b94d4d674de4c1f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|