Dunimd Middleware Service
English | 简体中文
Help Documentation | Changelog | Security | Contributing | Code of Conduct
DMSC (Dunimd Middleware Service) — A high-performance Rust middleware framework that unifies backend infrastructure. Built for enterprise-scale with modular architecture, built-in observability, and distributed systems support.
🏗️ Core Architecture
📐 Modular Design
DMSC adopts a highly modular architecture with 18 core modules, enabling on-demand composition and seamless extension:
| Module | Description |
|---|---|
| auth | Authentication & authorization (JWT, OAuth, permissions) |
| cache | Multi-backend cache abstraction (Memory, Redis, Hybrid) |
| config | Multi-source configuration management with hot reload |
| core | Runtime, error handling, and service context |
| database | Database abstraction with PostgreSQL, MySQL, SQLite support |
| device | Device control, discovery, and intelligent scheduling |
| fs | Secure file system operations and management |
| gateway | API gateway with load balancing, rate limiting, and circuit breaking |
| grpc | gRPC server and client support with Python bindings (requires grpc feature) |
| hooks | Lifecycle event hooks (Startup, Shutdown, etc.) |
| log | Structured logging with tracing context integration |
| module_rpc | Inter-module RPC communication for distributed method calls |
| observability | Metrics, tracing, and Grafana integration |
| database.orm | Type-safe ORM with repository pattern, query builder, and Python bindings |
| protocol | Protocol abstraction layer for multi-protocol support (requires pyo3 feature) |
| queue | Distributed queue abstraction (Kafka, RabbitMQ, Redis, Memory) |
| service_mesh | Service discovery, health checking, and traffic management |
| validation | Input validation and data sanitization utilities |
| ws | WebSocket server support with Python bindings (requires websocket feature) |
| c | C/C++ FFI bindings for cross-language integration (requires c feature) |
| java | Java JNI bindings for Java application integration (requires java feature) |
Note: Some modules require specific feature flags:
grpc: gRPC support (--features grpc)websocket: WebSocket support (--features websocket)protocol: Protocol abstraction layer (--features protocolorfull)c: C/C++ FFI bindings (--features c)java: Java JNI bindings (--features java)
🚀 Key Features
🔍 Distributed Tracing
- W3C Trace Context standard implementation
- Full-chain TraceID/SpanID propagation
- Baggage data transmission for business context
- Multi-language compatibility (Java, Go, Python)
- Automatic span creation via
#[tracing::instrument]attribute
📊 Enterprise Observability
- Native Prometheus metrics export
- Counter, Gauge, Histogram, Summary metric types
- Out-of-the-box Grafana dashboard integration
- Real-time performance statistics with quantile calculation
- Full-stack metrics (CPU, memory, I/O, network)
🤖 Intelligent Device Management
- Auto-discovery and registration
- Efficient resource pool management
- Policy-based scheduling with priority support
- Dynamic load balancing
- Complete device lifecycle management
📝 Structured Logging
- JSON and text format support
- Configurable sampling rates
- Intelligent log rotation
- Automatic tracing context inclusion
- DEBUG/INFO/WARN/ERROR log levels
⚙️ Flexible Configuration
- Multi-source loading (files, environment variables, runtime)
- Hot configuration updates
- Modular architecture for on-demand composition
- Plugin-based extension mechanism
📁 Secure File System
- Unified project root directory management
- Atomic file operations
- Categorized directory structure
- JSON data persistence
- Secure path handling
🛠️ Installation & Environment
Prerequisites
- Rust: 1.65+ (2021 Edition)
- Cargo: 1.65+
- Platforms: Linux (x64, arm64), macOS (x64, arm64), Windows (x64, arm64), Android (arm64-v8a, armeabi-v7a, x86_64)
Build Dependencies
Some features require additional system dependencies:
| Dependency | Required For | Installation |
|---|---|---|
| protoc | etcd feature (Protocol Buffers) | Protocol Buffers |
| CMake + C++ compiler | kafka feature (rdkafka) | See instructions below |
Installing protoc
Windows:
# Using chocolatey
choco install protoc
# Or download from GitHub releases
# https://github.com/protocolbuffers/protobuf/releases
macOS:
brew install protobuf
Linux (Ubuntu/Debian):
sudo apt-get update
sudo apt-get install -y protobuf-compiler
Linux (CentOS/RHEL):
sudo yum install -y protobuf-compiler
Installing CMake and C++ compiler (for Kafka support)
Windows:
# CMake is usually installed with Visual Studio
# Or download from: https://cmake.org/download/
# Using chocolatey
choco install cmake
macOS:
# CMake and C++ compiler (Xcode Command Line Tools)
xcode-select --install
# Or using Homebrew
brew install cmake
Linux (Ubuntu/Debian):
sudo apt-get update
sudo apt-get install -y cmake build-essential
Linux (CentOS/RHEL):
sudo yum install -y cmake gcc-c++ make
Quick Setup
Add DMSC to your project's Cargo.toml:
[dependencies]
dmsc = "0.1.8"
Or use cargo add:
cargo add dmsc
⚡ Quick Start
Core API Usage
use dmsc::prelude::*;
#[tokio::main]
async fn main() -> DMSCResult<()> {
// Build service runtime
let app = DMSCAppBuilder::new()
.with_config("config.yaml")?
.with_logging(DMSCLogConfig::default())
.with_observability(DMSCObservabilityConfig::default())
.build()?;
// Run business logic
app.run(|ctx: &DMSCServiceContext| async move {
ctx.logger().info("service", "DMSC service started")?;
// Your business code here
Ok(())
}).await
}
Observability Example
use dmsc::prelude::*;
use dmsc::observability::{DMSCTracer, DMSCSpanKind, DMSCSpanStatus};
#[tracing::instrument(name = "user_service", skip(ctx))]
async fn get_user(ctx: &DMSCServiceContext, user_id: u64) -> DMSCResult<User> {
let user = fetch_user_from_db(user_id).await?;
Ok(user)
}
Or using DMSCTracer directly:
use dmsc::prelude::*;
use dmsc::observability::DMSCTracer;
async fn get_user(ctx: &DMSCServiceContext, user_id: u64) -> DMSCResult<User> {
let tracer = DMSCTracer::new(1.0);
let _span = tracer.span("get_user")
.with_attribute("user_id", user_id.to_string())
.start();
let user = fetch_user_from_db(user_id).await?;
Ok(user)
}
🔧 Configuration
Configuration Example
# config.yaml
service:
name: "my-service"
version: "1.0.0"
logging:
level: "info"
file_format: "json"
file_enabled: true
console_enabled: true
observability:
metrics_enabled: true
tracing_enabled: true
prometheus_port: 9090
resource:
providers: ["cpu", "gpu", "memory"]
scheduling_policy: "priority_based"
Configuration Sources
DMSC supports multiple configuration sources in order of priority (lowest to highest):
- Configuration files (YAML, TOML, JSON)
- Custom configuration via code
- Environment variables (prefixed with
DMSC_)
🧪 Development & Testing
Running Tests
Multi-Language Testing
DMSC provides comprehensive testing across all supported languages:
- Rust: Core library tests with
cargo test - Python: Python binding tests with
pytest - Java: JNI binding tests with standard Java test runner
- C/C++: C API tests with native compilers
Test Coverage
The tests verify:
- ✅ Builder pattern behavior in all languages
- ✅ Method chaining returns appropriate instances (language-specific)
- ✅ Runtime creation and lifecycle management
- ✅ Error handling and edge cases
- ✅ Cross-language API consistency
Running Rust Tests
# Run all Rust tests
cargo test
# Run specific test modules
cargo test --lib app_builder
cargo test --lib app_runtime
# Run with verbose output
cargo test -- --nocapture
# Run with all features
cargo test --all-features
Running Python Tests
# Install Python package in development mode
cd python
pip install -e .
# Run all Python tests
python -m pytest tests/Python/ -v
# Run specific test classes
python -m pytest tests/Python/test_core.py::TestDMSCAppBuilderWrapper -v
python -m pytest tests/Python/test_core.py::TestDMSCAppRuntimeWrapper -v
Running Java Tests
# Build JNI library
cargo build --release --no-default-features --features java
# Compile and run Java tests
cd java
javac -d build/classes/java/test -cp build/classes/java/main \
src/test/java/TestAll.java src/test/java/TestAppBuilder.java
java -cp build/classes/java/test:build/classes/java/main \
-Djava.library.path=../target/release TestAll
API Behavior Across Languages
| Language | Builder Pattern | Method Chaining | Reason |
|---|---|---|---|
| Rust | Returns Self |
Consumes original | Native builder pattern |
| Python | Returns self |
Same instance | Pythonic wrapper for PyO3 |
| Java | Returns new instance | Immutable builder | Java best practice |
| C | Returns new pointer | Memory management | C idioms |
❓ Frequently Asked Questions
Q: How to add a new module?
A: Implement the DMSCModule trait and register it via DMSCAppBuilder::with_module.
Q: How to configure logging level?
A: Set logging.level in the configuration file, supporting DEBUG/INFO/WARN/ERROR levels.
Q: How to enable metrics export?
A: Set observability.metrics_enabled: true and configure prometheus_port in the configuration file.
Q: How to extend configuration sources?
A: Implement a custom configuration loader and register it with DMSCConfigManager.
Q: How to handle asynchronous tasks?
A: Use DMSCAppBuilder::with_async_module to add async modules, the framework handles async lifecycle automatically.
🌏 Community & Citation
- Welcome to submit Issues and PRs!
- Github: https://github.com/mf2023/DMSC.git
- Gitee: https://gitee.com/dunimd/dmsc.git
- GitCode: https://gitcode.com/dunimd/dmsc.git
📄 License & Open Source Agreements
🏛️ Project License
This project uses Apache License 2.0 open source agreement, see LICENSE file.
📋 Dependency Package Open Source Agreements
Open source packages and their agreement information used by this project:
Dependencies License
| 📦 Package | 📜 License | 📦 Package | 📜 License |
|---|---|---|---|
| serde | MIT/Apache-2.0 | serde_json | MIT/Apache-2.0 |
| serde_yaml | MIT/Apache-2.0 | tokio | MIT |
| futures | MIT/Apache-2.0 | futures-util | MIT/Apache-2.0 |
| http | MIT/Apache-2.0 | hyper | MIT |
| prometheus | MIT/Apache-2.0 | redis | MIT |
| lapin | MIT/Apache-2.0 | rdkafka | MIT |
| yaml-rust | MIT/Apache-2.0 | toml | MIT/Apache-2.0 |
| etcd-client | MIT | sysinfo | MIT |
| async-trait | MIT/Apache-2.0 | dashmap | MIT |
| chrono | MIT | uuid | MIT/Apache-2.0 |
| rand | MIT/Apache-2.0 | notify | CC0-1.0 |
| jsonwebtoken | MIT | reqwest | MIT/Apache-2.0 |
| urlencoding | MIT | parking_lot | MIT/Apache-2.0 |
| log | MIT/Apache-2.0 | tracing | MIT |
| pyo3 | MIT/Apache-2.0 | jni | MIT/Apache-2.0 |
| safer-ffi | MIT | tempfile | MIT/Apache-2.0 |
| thiserror | MIT/Apache-2.0 | hex | MIT/Apache-2.0 |
| base64 | MIT/Apache-2.0 | regex | MIT/Apache-2.0 |
| url | MIT/Apache-2.0 | aes-gcm | MIT/Apache-2.0 |
| ring | ISC | lazy_static | MIT/Apache-2.0 |
| libloading | ISC | zeroize | MIT/Apache-2.0 |
| zeroize_derive | MIT/Apache-2.0 | secrecy | MIT |
| erased-serde | MIT | data-encoding | MIT |
| crc32fast | MIT/Apache-2.0 | generic-array | MIT |
| bincode | MIT | typenum | MIT/Apache-2.0 |
| html-escape | MIT | rustls | MIT/Apache-2.0 |
| rustls-pemfile | MIT/Apache-2.0 | webpki | ISC |
| rustls-native-certs | MIT/Apache-2.0 | tokio-rustls | MIT/Apache-2.0 |
| bytes | MIT | tonic | MIT |
| prost | MIT/Apache-2.0 | prost-types | MIT/Apache-2.0 |
| tokio-stream | MIT | tower | MIT |
| async-stream | MIT | tokio-tungstenite | MIT |
| tungstenite | MIT | num-bigint | MIT/Apache-2.0 |
| oqs | MIT/Apache-2.0 | sm-crypto | MIT |
| openssl-sys | Apache-2.0 | tokio-postgres | MIT/Apache-2.0 |
| rusqlite | MIT | sqlx | MIT/Apache-2.0 |
| criterion | MIT/Apache-2.0 |
Metadata
Release files for dmsc 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 411.8 MB
Release files / dmsc-0.1.8-cp314-cp314-win_arm64.whl
| Download URL | dmsc-0.1.8-cp314-cp314-win_arm64.whl |
|---|---|
| Size | 7.1 MB |
| Tags | CPython 3.14 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
c48428f7e160c4335c0f9a00956f3af2a94540bd191bead33703d5fd2d2c62ac
|
|
BLAKE2b-256 checksum How to use checksums |
005ce29be62a6dfe9bc8b2bf9202031844d00cb9eaa67c100496c3da2fafefc0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp314-cp314-win_amd64.whl
| Download URL | dmsc-0.1.8-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fd4b763f214cdc4529e61c1931840648151301827d91ca904b28ed894cebdd29
|
|
BLAKE2b-256 checksum How to use checksums |
92ad7ebf3d87945918f547ea17b41d24f41d7f8b8e5a7a3da3e1e94074ee8ef3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | dmsc-0.1.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.4 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
4e3a8cd600ba9b85b9187b182eab4889a1dc1b6b6aaafcccf3ec418cddc4a402
|
|
BLAKE2b-256 checksum How to use checksums |
13905b069f77a16ee41f814d40b4d6fe65a2cd4b26f09dfed5d79afb305830bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | dmsc-0.1.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
9e0424137242cba9343335d9c1e81469f36b697fe0aa9441e9e8d6ff1841c7c2
|
|
BLAKE2b-256 checksum How to use checksums |
09714772983784e13713c50221461e8139973819aa74ab83cde329055b04e01a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | dmsc-0.1.8-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0bd093d737c1031c799b8e9c99400fbc7ffdd293cbfca9ae8fdb7413790f9768
|
|
BLAKE2b-256 checksum How to use checksums |
ad7656cd4e33be82a05862987a6bcddbfc804925c1614984cb056cb4b61384b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | dmsc-0.1.8-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
880fca436b72a1d187f42dc2ccff03a0789f50d2d6764c7cbfd6e17a5962627c
|
|
BLAKE2b-256 checksum How to use checksums |
9bbe1ab36518bcb6f297bf128b82a0cdd4c7c1617d90b725605e7036df20e4a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp313-cp313-win_arm64.whl
| Download URL | dmsc-0.1.8-cp313-cp313-win_arm64.whl |
|---|---|
| Size | 7.1 MB |
| Tags | CPython 3.13 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
7ef74be08cb1a834b2971d6c6efa56c060c7857c3ad3145b39cddcee3d2e860e
|
|
BLAKE2b-256 checksum How to use checksums |
5b4df7086de5fa3d34badc592e0a5bae150f9aa760e50391e312d75c10842f1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp313-cp313-win_amd64.whl
| Download URL | dmsc-0.1.8-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7fae9a5f91d752c0400a066a93549a05a49e848ecb3a932878ad80e6b59bfdd5
|
|
BLAKE2b-256 checksum How to use checksums |
249304137d15b965be5b044f10bfeac0af4d269ecc3c9fa4350845358408e8ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | dmsc-0.1.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.4 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
ffeb30939af9b5e441187afcf5fe06266c642fdce273f713a6a0d73608fb4674
|
|
BLAKE2b-256 checksum How to use checksums |
2328340f1dba7088298b709bc3e3965dc0f45766e46ca05745dff5d669d75e9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | dmsc-0.1.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
caff499eefbb1a3181e527edd0781508b0ddbc2b97f6f4e86db236f23fcf1008
|
|
BLAKE2b-256 checksum How to use checksums |
18146a396307f0dbfb04c7b3016fdc42b054c34467b1ecce53eb1c8c9c6bee4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | dmsc-0.1.8-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
593054a84a29987814fa868e0cf1ce52e614069768dce6aa83c6fc9085e8cba0
|
|
BLAKE2b-256 checksum How to use checksums |
abd323349fb22e6e297462c3487a0881ff12e7fab45e373039be3efbb643386f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | dmsc-0.1.8-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
7ef68cf3ef9193413872bfba3da73fb89e52d7108c363f01a9e9d5a46c682f59
|
|
BLAKE2b-256 checksum How to use checksums |
d180c61e6f34c008c894ee51c96c07d4d592a2798bc5fc33780c8abf6afd54bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp312-cp312-win_arm64.whl
| Download URL | dmsc-0.1.8-cp312-cp312-win_arm64.whl |
|---|---|
| Size | 7.1 MB |
| Tags | CPython 3.12 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
b6cf06ebd87e49b58a265d622b34db5c5aa3e20038326df844a3f0a5a38a85c8
|
|
BLAKE2b-256 checksum How to use checksums |
fc18bf394014156b84c6431969c129d2f47485cc446ce82e0d210ff472aed603
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp312-cp312-win_amd64.whl
| Download URL | dmsc-0.1.8-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7839cccfe9ca6849c910e782858b124e5a43d7b99b79576fab6cff7783f508e7
|
|
BLAKE2b-256 checksum How to use checksums |
5b303c24db538471147531e29b4fcf9940b345772e56f8c22b41cb920bf87280
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | dmsc-0.1.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.4 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
883eb35559a3ea25630ee004e42a56fd3563b194804097da0e3ba3c565e1f267
|
|
BLAKE2b-256 checksum How to use checksums |
678d8b7123499610f67e895aa5c398cde4f0617b989deca31a449af01121daab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | dmsc-0.1.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
9ea1667ccf7c7ccb9c503bf012bf849fc6b17dfe64feefb97d66090fbd3f8b3b
|
|
BLAKE2b-256 checksum How to use checksums |
a7e2b2dbaa8c0a1274d45e50702440ac0c6aaa48c9284e24f76477675f321077
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | dmsc-0.1.8-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b719f2f9c520114395c19f3678df4f968271d30c8bc946eec731f02fabe247a8
|
|
BLAKE2b-256 checksum How to use checksums |
887f2db42ff8c7c02f1628461d43e60cc32bba4198e97ee32a8fb82a89202cb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | dmsc-0.1.8-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
f69407b20611948247836e84741a379cad63a86036310ab0684c1e2e65641e2f
|
|
BLAKE2b-256 checksum How to use checksums |
5cc79b146c7cbf254f52258f681a5bbeac7822d2a2c3146ec48167dbf204cddc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp311-cp311-win_arm64.whl
| Download URL | dmsc-0.1.8-cp311-cp311-win_arm64.whl |
|---|---|
| Size | 7.1 MB |
| Tags | CPython 3.11 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
03af664eebc416309c337d255a155e68313e284ca9a3f1e9d4d8dfa3b068bf53
|
|
BLAKE2b-256 checksum How to use checksums |
a3590d9c395104f6da1aa4420072a35b9b91ecc52016be7c63a6626804425b60
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp311-cp311-win_amd64.whl
| Download URL | dmsc-0.1.8-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
624fb2e21cc6671f322cf65c8aa8e41c1e5b21abe0fb2504861071278fc79fbe
|
|
BLAKE2b-256 checksum How to use checksums |
f5c842333ca25cf6e4856fae8d648e7d8af93c6e031b97352cfb41d4a4ef766d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | dmsc-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.4 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f001ea5892687f049fb94f17605f189e45cc594546c413400ab2e0092ba76a34
|
|
BLAKE2b-256 checksum How to use checksums |
aa7ee5afb6147a2890f7144f5090dc590fe5cec80e2797f8ba0205dc816f1e59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | dmsc-0.1.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
d0ef6717ed91c66cce73150dd8552653d0e8196a0a8d38f747f719485c73f151
|
|
BLAKE2b-256 checksum How to use checksums |
8fdb2d08bb49ebeee8df88be704b7aa682100d1e40b51abe3fcf5aed0e158633
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | dmsc-0.1.8-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
b1a9dae7d2f058555a56fb9ce557cb360aebcecb05985338aa34b3130113ec34
|
|
BLAKE2b-256 checksum How to use checksums |
4446d0b430fdcbd0f7fd36df26044a2c2b5d716fb320125a7dcdc8d0d22e3ce6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | dmsc-0.1.8-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 13.3 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
c7d386872949139fa5e04072cdc8197df8d37f9428c169aa3fee4d9cfde1a862
|
|
BLAKE2b-256 checksum How to use checksums |
359652ca62c46e40d8d95b07d27358283fe2ce4f7fba9837b6f4c66124d3ce3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp310-cp310-win_amd64.whl
| Download URL | dmsc-0.1.8-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d43b01ba3ad96be37a106cd0fc8ecf8267805363bfdc1f8c4bbe3415582a01f1
|
|
BLAKE2b-256 checksum How to use checksums |
1391686516bf6c4ae2d1e21f39ae50df024de91a513347c5ed060575e31e5511
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | dmsc-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.4 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
987a9acd9fe8dfdd716d651acab5184956108ba955cf3e4b3e848901740a75de
|
|
BLAKE2b-256 checksum How to use checksums |
5011a056c3667f1d81815e3acd4d9cf9835ae89517cd5181c3736e73e8fd0250
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | dmsc-0.1.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
2ad78c4e5ce6c5718d53ae495a99edff33f4077de931d030f54c7b34691af17e
|
|
BLAKE2b-256 checksum How to use checksums |
cd1045c60e60cc401292e47cd4eb2efbcd201a9870a1a301bf8997ba5548706f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | dmsc-0.1.8-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0c679ebd6b748d327efc98e17473ae0332b501c1354f9c277791e7d53a62cfca
|
|
BLAKE2b-256 checksum How to use checksums |
e66d7615d3ad737ba55401830df6d90f2350dad7f64b756c784975f32eb92e28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp310-cp310-macosx_10_12_x86_64.whl
| Download URL | dmsc-0.1.8-cp310-cp310-macosx_10_12_x86_64.whl |
|---|---|
| Size | 13.3 MB |
| Tags | CPython 3.10 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
247624f0edec4e839c485b86b3c7c180c5c7ebd548d21566711e8a193754d837
|
|
BLAKE2b-256 checksum How to use checksums |
8d9682a4e6eaf3557bbd9e1fc277c9e44dc35cebe7be53a5e8aee1b8803a5b27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp39-cp39-win_amd64.whl
| Download URL | dmsc-0.1.8-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c0d371c8d0601a28a1e093ca39d3eb5dfe878e011f3a342b948aa4d449721d2d
|
|
BLAKE2b-256 checksum How to use checksums |
a79c91b63f55964565b925d7bdaf8a1e159ae7dbe914085c46c86240b3e4444a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | dmsc-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.4 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
4dbf01857c861e37fdc6873ae96a3f4357611fc9e04c8a64c1864f0260ee39a2
|
|
BLAKE2b-256 checksum How to use checksums |
f480f6d0993240b590aa9a9eadfdad17cd488932a491ed5a567a029eb8ed71a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | dmsc-0.1.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
b572dddc3ddd361a2fe01d680c44a581c282590e7d56e800bf7253761ec6779d
|
|
BLAKE2b-256 checksum How to use checksums |
72e91cf058f689c7b64d20192056375f2448ac180c6b38dfe14ee38f140843b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp39-cp39-macosx_11_0_arm64.whl
| Download URL | dmsc-0.1.8-cp39-cp39-macosx_11_0_arm64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.9 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a03cab6b993e8d8369e1952c034563b4aa865c1f15904aa3e882179b321a1725
|
|
BLAKE2b-256 checksum How to use checksums |
e09ef4e953c8f251903fd2d4f591bde716b2ddc40bcdd72f8db30df8b2f2dc12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp39-cp39-macosx_10_12_x86_64.whl
| Download URL | dmsc-0.1.8-cp39-cp39-macosx_10_12_x86_64.whl |
|---|---|
| Size | 13.3 MB |
| Tags | CPython 3.9 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
4d2afb1433b501e383c7d71686ca53f130de5eebb82f89df8ca669fe65eee63b
|
|
BLAKE2b-256 checksum How to use checksums |
99e8c50c9aaba5ca5d2b5099147adee0c2e67ca7ad676a05d070398268bb74b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp38-cp38-win_amd64.whl
| Download URL | dmsc-0.1.8-cp38-cp38-win_amd64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | CPython 3.8 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
60ccddbbc3f6a659c888037762dbec50f1301c62bf466601015e261c53f2ef35
|
|
BLAKE2b-256 checksum How to use checksums |
69e6ad6e583ce5eb6a93c7b4ff29545efccb20191de9f69de0c7440e4477c9a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | dmsc-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 10.4 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
3c326f046d5561f8b982b49a4a925e066032f53b12faabafa2b974c673919c3a
|
|
BLAKE2b-256 checksum How to use checksums |
ff012e3c79e4a945c3759209db580f4140d2827cca3d4634d36185f058658a97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | dmsc-0.1.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ ARM64 |
|
SHA-256 checksum How to use checksums |
0dd7d43aa0dac87410f66468f59957525605af422859d98844db77e7d5b70653
|
|
BLAKE2b-256 checksum How to use checksums |
56d3b597319837c644f87633ecff0c06c06bed56437be24257aa0463f7c12338
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp38-cp38-macosx_11_0_arm64.whl
| Download URL | dmsc-0.1.8-cp38-cp38-macosx_11_0_arm64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.8 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6089dec2651030e2d93997a190791f822c48c9c232ae657d88497421c682bccd
|
|
BLAKE2b-256 checksum How to use checksums |
980bbd5ddc624a3a0a97e95a58b6ac9180a9f0d438842a5f4840232e0cd6f2d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / dmsc-0.1.8-cp38-cp38-macosx_10_12_x86_64.whl
| Download URL | dmsc-0.1.8-cp38-cp38-macosx_10_12_x86_64.whl |
|---|---|
| Size | 13.3 MB |
| Tags | CPython 3.8 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
82bfd0dca4369a3bf99f78f7684b61c762e1a8b075e552aaa65476f36eaf7be6
|
|
BLAKE2b-256 checksum How to use checksums |
6f1ecbc2722f244a7d923e7eea510de64ad15273a399af974b5e02a4b0e0796d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|