Skip to main content

Dunimd Middleware Service - A high-performance Rust middleware framework with modular architecture

Project description

DMSC (Dunimd Middleware Service)

English | 简体中文

Help Documentation | Changelog

BiliBili Gitee GitHub Crates.io PyPI

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 16 core modules plus 3 optional 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)

Note: Some modules require specific feature flags:

  • grpc: gRPC support (--features grpc)
  • websocket: WebSocket support (--features websocket)
  • protocol: Protocol abstraction layer (--features protocol or full)

🚀 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, macOS, Windows

Quick Setup

Add DMSC to your project's Cargo.toml:

[dependencies]
dmsc = { git = "https://github.com/mf2023/DMSC" }

Or use cargo add:

cargo add DMSC --git https://github.com/mf2023/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):

  1. Configuration files (YAML, TOML, JSON)
  2. Custom configuration via code
  3. Environment variables (prefixed with DMSC_)

🧪 Development & Testing

Running Tests

# Run all tests
cargo test

# Run specific test module
cargo test cache

# Run with verbose output
cargo test -- --nocapture

❓ 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

📄 License & Open Source Agreements

🏛️ Project License

Apache License 2.0

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
serde Apache 2.0
serde_json MIT
serde_yaml MIT
tokio MIT
prometheus Apache 2.0
redis MIT
hyper MIT
lapin Apache 2.0
futures MIT
yaml-rust MIT
toml MIT
etcd-client MIT
sysinfo MIT
async-trait MIT
dashmap MIT
chrono MIT
uuid Apache 2.0
rand MIT
notify MIT
jsonwebtoken MIT
reqwest MIT
urlencoding MIT
parking_lot MIT
log MIT
pyo3 Apache 2.0
tempfile MIT
tracing MIT
thiserror MIT
hex MIT
base64 MIT
regex MIT
url Apache 2.0
aes-gcm Apache 2.0
ring Apache 2.0
lazy_static MIT
libloading MIT
zeroize MIT/Apache-2.0
secrecy MIT
data-encoding MIT
crc32fast MIT
generic-array MIT
bincode MIT
typenum MIT
html-escape MIT
rustls Apache 2.0/MIT
rustls-pemfile Apache 2.0/MIT
webpki ISC
rustls-native-certs Apache 2.0/MIT
bytes Apache 2.0
tonic MIT
prost Apache 2.0
tokio-stream MIT
tower MIT
async-stream MIT
tokio-tungstenite MIT
tungstenite MPL-2.0
num-bigint MIT/Apache-2.0
oqs MIT/Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

dmsc-0.1.5-cp314-cp314-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.14Windows x86-64

dmsc-0.1.5-cp314-cp314-manylinux_2_39_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ x86-64

dmsc-0.1.5-cp314-cp314-manylinux_2_39_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.39+ ARM64

dmsc-0.1.5-cp314-cp314-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

dmsc-0.1.5-cp314-cp314-macosx_10_12_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

dmsc-0.1.5-cp313-cp313-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.13Windows x86-64

dmsc-0.1.5-cp313-cp313-manylinux_2_39_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

dmsc-0.1.5-cp313-cp313-manylinux_2_39_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ ARM64

dmsc-0.1.5-cp313-cp313-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

dmsc-0.1.5-cp313-cp313-macosx_10_12_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

dmsc-0.1.5-cp312-cp312-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.12Windows x86-64

dmsc-0.1.5-cp312-cp312-manylinux_2_39_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

dmsc-0.1.5-cp312-cp312-manylinux_2_39_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ ARM64

dmsc-0.1.5-cp312-cp312-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dmsc-0.1.5-cp312-cp312-macosx_10_12_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

dmsc-0.1.5-cp311-cp311-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.11Windows x86-64

dmsc-0.1.5-cp311-cp311-manylinux_2_39_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

dmsc-0.1.5-cp311-cp311-manylinux_2_39_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ ARM64

dmsc-0.1.5-cp311-cp311-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dmsc-0.1.5-cp311-cp311-macosx_10_12_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

dmsc-0.1.5-cp310-cp310-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.10Windows x86-64

dmsc-0.1.5-cp310-cp310-manylinux_2_39_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

dmsc-0.1.5-cp310-cp310-manylinux_2_39_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ ARM64

dmsc-0.1.5-cp310-cp310-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

dmsc-0.1.5-cp310-cp310-macosx_10_12_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

dmsc-0.1.5-cp39-cp39-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.9Windows x86-64

dmsc-0.1.5-cp39-cp39-manylinux_2_39_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.39+ x86-64

dmsc-0.1.5-cp39-cp39-manylinux_2_39_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.39+ ARM64

dmsc-0.1.5-cp39-cp39-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

dmsc-0.1.5-cp39-cp39-macosx_10_12_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

dmsc-0.1.5-cp38-cp38-win_amd64.whl (5.9 MB view details)

Uploaded CPython 3.8Windows x86-64

dmsc-0.1.5-cp38-cp38-manylinux_2_39_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.39+ x86-64

dmsc-0.1.5-cp38-cp38-manylinux_2_39_aarch64.whl (6.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.39+ ARM64

dmsc-0.1.5-cp38-cp38-macosx_10_12_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

Details for the file dmsc-0.1.5-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: dmsc-0.1.5-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for dmsc-0.1.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8883b58dd4dca6609a552dc244b16388c90ae687324ca90e6c2d3e5e5a903deb
MD5 fb9f5caf208ec5a6c9f5659d29ba506f
BLAKE2b-256 8571a527cb9fce87804e32ba0519a6e04f11506b941451e2f54678c9db13181c

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp314-cp314-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp314-cp314-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 a73bae1b8f1a46c1064a630f13ad67f21ed829e6e54e001713e7aa0828977724
MD5 ccd026ce9fd367b63682ebf3d02aae15
BLAKE2b-256 6ecccbe24b6d52db6eb5a0e570e4659c86963f3fd2211470d7ebb5f32758ad9f

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp314-cp314-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp314-cp314-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 78a5258da0575d8aa7ec5508a72df6b49f6b7e5869889d7904b6315dcafd05d9
MD5 dc2e10677ac5addf43b9d4501667b1e6
BLAKE2b-256 a98080a82fa0a7c3e577bdfb49890efff8b86d883274543cfd03e8e76535faf7

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c126e53293a4ecf74f9e4ed777b120bee9504f1309ee1b711214244f1636b3d
MD5 0572979f5904a3ec249b5eb546a60ebd
BLAKE2b-256 4da855a5f863bd246cdd027283b2eba5bdd743c591a445c582af2341cec0fc80

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4f2f1d042cc155613c2eb7cb1a406022e510034129612b801754e6f83281cfab
MD5 0bfa0026b958eb38f003535d6f5d624a
BLAKE2b-256 13ee741861130b5d19c42c2b10b51bf5a391b394dbfa8067b8444eb2b21f8981

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: dmsc-0.1.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for dmsc-0.1.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4079e6a93c060fc2f4892615b088eaa43c12599fb134eddda25680bf3df04599
MD5 97eb21d5e259e1dcc812eec44cfc125b
BLAKE2b-256 093dacbce0e0dd877f8ce368a79645362572fde23c74a4c3061356e10275ebe7

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 9d8daa4716975aa2fa3149fff6e8286aef6e90efc681a7edbfc4ac7964a7fde0
MD5 726a60c5f031cdd35944e372f1c26ef4
BLAKE2b-256 79daead3e4f3eec80d27dd6318354a9fa77aa59a6192380a685cf6d59410b362

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp313-cp313-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp313-cp313-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 1c6394a4146d3652858bbf5d636255b6b61854fdc0e61f470301846cf3b92e13
MD5 e242951d25d2fe282f1387ff26043b57
BLAKE2b-256 f528ea0bd0d198450f3f072ebbb6807cff57c5018a083a32d5bf198e0df75b89

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 733f7fea2af19abc128833a8e65c76cdea7fae58427fbb018c18de305013902f
MD5 50f0593f4f920415a2fe0ca7abba612d
BLAKE2b-256 a7901d6e293ff5921b53c60da4f4214a629ad7da58255ba0b9e8de3e59fe0786

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 53da5e252b64def2bad3311622e7f8c221898bd86337355932dc56845ceab35c
MD5 ab81433cbf1b7a0ba71c9836511fc2ed
BLAKE2b-256 ea64fd88f3b9d8f51f68c66e4486546bfbb5cc0485bbc7193892f121dbca13ad

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: dmsc-0.1.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for dmsc-0.1.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5dad3953d715d90423116cf06f7a60ddda5616dc88efde27c9176e71c65b80f9
MD5 30b19d2298c41b5e871fe8e33f79a3b1
BLAKE2b-256 b3d00d5c39c957c5e9ec624cf28687820fcd189f6703c3fd026bfdbbf6881353

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 2b6aa37914def0b322241bea4a4b51a25559c7e186e4a0c8528a832efaa942a7
MD5 4f706d941f2a416a0027e2e0a7c2bea8
BLAKE2b-256 b383d174ee53d5bf756ccb6d8eb75a58a37f7f86fdf875a7838ee9870d98797d

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp312-cp312-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp312-cp312-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 2a35ccfb0326717d814e8a22e55c7b8d1342400b59d01efbc4b9fdd09eae3dc6
MD5 3e4a65f07e4b42bbb37f8e0b88c33165
BLAKE2b-256 113528d4cd7a33cebc0603ddf791e7f68ece5cc43f4f75faa4f3712118b4e233

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a50dafeaa19119111386662c41f93cec8a957481af86cd711c7ef635cbc695e
MD5 27395c3b4689525524e253ed1fd39155
BLAKE2b-256 c7b8f1076ca067173831601a7534f5596b123d91619b2703b781dd0328e6d718

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fa17c056ae290dd048e61f37d5533259db0058087d030283cb24a22df0456960
MD5 357a9646b465af2d60e075e406e46a28
BLAKE2b-256 82dc062cb655bf2663167aa12c355d1550f42dcf525acff82c0d7211c5cc9c6b

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: dmsc-0.1.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for dmsc-0.1.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1461b09745c94c8dac0528c89a23aa4ef4ad1a692cfe86e49d7fc008ef31a115
MD5 757dc20efdf73f9f1ff257fc0774efc7
BLAKE2b-256 44967f34b501ed912388ca252bc66ce7dbaf3e33fdab40278bad5fa8b9602852

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 0b816d625efd5b1aa7036e8d987149005dcae928a8c66d2e4bf7d4784d1d2d4e
MD5 cd1d945ed0dcc1e0a5766243c6f05d38
BLAKE2b-256 99fede39f720f74ccfe0f42867721f1440d276f9239ee67219bcd555462e52c4

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp311-cp311-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp311-cp311-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 897b6a6b3d0f7179129bd026c8cce4b373e2ddaf7fdd9283ac29b17e36468ebe
MD5 0cbe3028167180ec825f1599f03e1a2f
BLAKE2b-256 5b70fe31d93d238285d722450acec7bf1551fbc8314af1ec00a7077550936322

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac0f8d04d182d915c9e6ff106ec42c5108799464791c5b8e0faabdedb681cacf
MD5 b067659fca93fa98a55553a1b9ef4ce1
BLAKE2b-256 bf4cf8bbc9e30b0d17653db6e6debadaa1ac4f64dd25c63f51cd2bdb0335d5a5

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f6e249943fdcaf1363ecee2225efeced8cd43b0e6b2310a9fc37054afc9fc6e9
MD5 2b14c6bba25dcc2c52fb9d73adb14246
BLAKE2b-256 1356e5ea1d4cd1f489be3593e85c16554ed61ce08847580a4e1a16047a4bf74f

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: dmsc-0.1.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for dmsc-0.1.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a7c1679a3bcb6adbb08da324fb336fbfd5c231e64c53595807cbe116af900c8d
MD5 d71e65921f1e771079c5c507d0e9dde8
BLAKE2b-256 3801646725ce3d8f8bc2891f5088c6bf7ce20d6b2abca9f337b245f3771021da

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 71b21446153b942c9d8c9e6af8f9722695bd1c885f5f6c7785088990103d2932
MD5 d2ab2c987197e2246bb028d3dbff0188
BLAKE2b-256 6662decea4a0882702e0ba0ecffd5e3371fd59118a5eee2dff99d3deb10d969d

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp310-cp310-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp310-cp310-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 413d480d52923ba0e76db295fb3e3cbd14b1aad0f0869401edc3faa400b0b0d5
MD5 7298393abd3051ed67ce16adf8f6f60a
BLAKE2b-256 c9c9767b287ad4887b9f314640cc79b4de6296b36cc13bf1e4253826680466f6

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6c8c50fe94099828fa5c5977dcc114ca29a335c629c515a8c5d10ffbf6c712e
MD5 169c280040db232a4f85ec34f0f32683
BLAKE2b-256 29b4fc36af873228c934906430d1d81ab4114404acc62be1d37688b54bf794d9

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 74973385dd1856c6c8ff369865443bafa0c5b837758be8a4e0f44f2808d39a63
MD5 0fc18319a43f3bf9082fff41e9dbacfe
BLAKE2b-256 297680228fba583cbcf842341a259d5117a8f66d2c638862275120e29ad3ad04

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: dmsc-0.1.5-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for dmsc-0.1.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 46a06697e4f1cd078bc7de4728b17a62e020a405a3a9905638afcd915e133241
MD5 bef64dee83baeeec9dfc08ec15c88f80
BLAKE2b-256 d918c0da6aa8ee2e8af6f593aa3c8089170e3a2255a85c4788ff1e0eda546a33

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp39-cp39-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp39-cp39-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 f2836471dafa10ad3317941acf56f846092a54d88cb01e5c88f0f10d7b80ad30
MD5 bae907d720c0a9e8746d18aacda1483e
BLAKE2b-256 26d3c2d68cf11e2a793e7276392780cfd0b3aca472b41209275d6f5f5d914023

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp39-cp39-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp39-cp39-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 06eef91c185a326fbe42e746718db41419e17314182ab207bb9f4dcdf58a3dd6
MD5 f1712aa5c1ffcda0fc88138f7a5d58d2
BLAKE2b-256 8d51b443484c1831e3ffb561241f3f021ea690a6be4b2e136a691e0df541c732

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: dmsc-0.1.5-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 6.2 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for dmsc-0.1.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40c08f23becdda4a3f28b3d69f867a98304dc556e5a84d6b549764fedc696824
MD5 8af3b912c0a80d459e1f8786928c1110
BLAKE2b-256 3a0070dfd0bb892e8e08da953841ba16ac1c764a9427c5a42a972336264e65fe

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 61f84c8768fe2b6996e4fa9dbf6681282c6545b19da39f281c133f7b9bdf903a
MD5 2a07295fd717769680bbe6dff664f528
BLAKE2b-256 67ecf9bc14d09b47078b76dc7f1960b920ccc2e0c6c5437b86d2e73a0359815c

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: dmsc-0.1.5-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 5.9 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for dmsc-0.1.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 519b561ac499e994b8427f8412fd8578afa6b7c38f57cc6cb47d42913e169b95
MD5 ad0098fe761a655e4372600cc62db2ad
BLAKE2b-256 4bdabf59adbae263be45b453d5bf69bf0e1152889db7ca2e18e4a0b53a70c4bc

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp38-cp38-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp38-cp38-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 a2f7e08b105aa6a37e6f27d09fdb5e98bac143d8c52a809e1417af6497039923
MD5 c05329eed722807f2bc34a81c613627a
BLAKE2b-256 4c46de210ac5365327a2fa4365fd9577837ff2854e8112806ab3d49507e1f471

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp38-cp38-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp38-cp38-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 e856e85c700f7eeeb48f8a8eff0cbf9e8085bec8379cbf8386dc31e44e41527b
MD5 65c78ef2385a645e0272cc7bb6cab18c
BLAKE2b-256 bd8e828e233814928a078266606d19ae3bc182f90fab1d72d61a0a2c79952093

See more details on using hashes here.

File details

Details for the file dmsc-0.1.5-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for dmsc-0.1.5-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a68875d02c79af7c637fba21b6dbd7ce34fb0b652291ae4fc401e2ddf293110f
MD5 468b61482b574e0cf292140765ee90bb
BLAKE2b-256 19525c3725c20e8588a11af8ce433419ccd65027243c7d41a85e57dbfe57fc0e

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