Skip to main content

Crate torsh_package

Crate torsh_package 

Source
Expand description

ToRSh Package - Model packaging and distribution

This module provides functionality similar to torch.package for creating self-contained model packages that include code, weights, and dependencies.

§Features

  • Package Creation: Create self-contained model packages with the Package struct
  • Builder Pattern: Use PackageBuilder for convenient package creation
  • Import/Export: Load and save packages with PackageImporter and PackageExporter
  • Resource Management: Manage different types of resources with Resource
  • Version Management: Handle semantic versioning with PackageVersion

§Quick Start

use torsh_package::{Package, PackageBuilder};

// Create a package using the builder pattern
let package = PackageBuilder::new("my-model".to_string(), "1.0.0".to_string())
    .author("Your Name".to_string())
    .description("My awesome model".to_string())
    .add_dependency("torch", "2.0")
    .package();

// Or create directly
let mut package = Package::new("my-model".to_string(), "1.0.0".to_string());
package.add_source_file("main", "fn main() { println!(\"Hello!\"); }").unwrap();

// Save the package
package.save("my-model.torshpkg").unwrap();

// Load a package
let loaded = Package::load("my-model.torshpkg").unwrap();

Re-exports§

pub use access_control::AccessCheckResult;
pub use access_control::AccessControlManager;
pub use access_control::AccessLevel;
pub use access_control::AclEntry;
pub use access_control::Organization;
pub use access_control::OrganizationMembership;
pub use access_control::PackageOwnership;
pub use access_control::Permission;
pub use access_control::Role;
pub use access_control::User;
pub use audit::ActionResult;
pub use audit::AuditEvent;
pub use audit::AuditEventType;
pub use audit::AuditListener;
pub use audit::AuditLogConfig;
pub use audit::AuditLogFormat;
pub use audit::AuditLogger;
pub use audit::AuditQuery;
pub use audit::AuditSeverity;
pub use audit::AuditStatistics;
pub use audit_storage::AuditStorage;
pub use audit_storage::DatabaseStatistics;
pub use audit_storage::InMemoryStorage;
pub use audit_storage::PoolStatistics;
pub use audit_storage::PostgresStorage;
pub use audit_storage::PostgresStorageConfig;
pub use audit_storage::SqliteStorage;
pub use audit_storage::SqliteStorageConfig;
pub use audit_storage::SslMode;
pub use audit_storage::StorageStatistics;
pub use backup::BackupConfig;
pub use backup::BackupDestination;
pub use backup::BackupManager;
pub use backup::BackupMetadata;
pub use backup::BackupStatistics;
pub use backup::BackupStrategy;
pub use backup::RecoveryPoint;
pub use backup::RetentionPolicy;
pub use backup::VerificationResult;
pub use builder::BuilderConfig;
pub use builder::PackageBuilder;
pub use cdn::CacheControl;
pub use cdn::CdnConfig;
pub use cdn::CdnManager;
pub use cdn::CdnProvider;
pub use cdn::CdnRegion;
pub use cdn::CdnStatistics;
pub use cdn::EdgeNode;
pub use cdn::EdgeNodeStatus;
pub use cloud_storage::AzureConfig;
pub use cloud_storage::GcsConfig;
pub use cloud_storage::MockAzureStorage;
pub use cloud_storage::MockGcsStorage;
pub use cloud_storage::MockS3Storage;
pub use cloud_storage::S3Config;
pub use compression::AdvancedCompressor;
pub use compression::CompressionAlgorithm;
pub use compression::CompressionConfig;
pub use compression::CompressionLevel;
pub use compression::CompressionResult;
pub use compression::CompressionStats;
pub use compression::CompressionStrategy;
pub use compression::DecompressionResult;
pub use compression::ParallelCompressor;
pub use delta::DeltaOperation;
pub use delta::DeltaPackageExt;
pub use delta::DeltaPatch;
pub use delta::DeltaPatchApplier;
pub use delta::DeltaPatchBuilder;
pub use dependency::DependencyConflict;
pub use dependency::DependencyGraph;
pub use dependency::DependencyResolver;
pub use dependency::DependencySpec;
pub use dependency::LocalPackageRegistry;
pub use dependency::PackageInfo;
pub use dependency::PackageRegistry;
pub use dependency::ResolutionStrategy;
pub use dependency::ResolvedDependency;
pub use dependency_installer::DownloadOptions;
pub use dependency_installer::InstallationPlan;
pub use dependency_installer::InstallationProgress;
pub use dependency_installer::ParallelDependencyInstaller;
pub use dependency_installer::PlannedPackage;
pub use dependency_lockfile::LockedDependency;
pub use dependency_lockfile::LockedPackage;
pub use dependency_lockfile::LockfileGenerator;
pub use dependency_lockfile::LockfileValidator;
pub use dependency_lockfile::PackageLockfile;
pub use dependency_solver::Assignment;
pub use dependency_solver::CdclSolver;
pub use dependency_solver::DependencySatSolver;
pub use dependency_solver::DependencySolution;
pub use dependency_solver::SatClause;
pub use dependency_solver::SatLiteral;
pub use dependency_solver::SatVariable;
pub use dependency_solver::VersionConstraint;
pub use diagnostics::DiagnosticIssue;
pub use diagnostics::DiagnosticReport;
pub use diagnostics::HealthStatus;
pub use diagnostics::IssueCategory;
pub use diagnostics::IssueSeverity;
pub use diagnostics::PackageDiagnostics;
pub use diagnostics::PackageStatistics;
pub use diagnostics::ResourceValidation;
pub use diagnostics::SecurityAssessment;
pub use diagnostics::ValidationResult;
pub use exporter::ExportConfig;
pub use exporter::PackageExporter;
pub use format_compat::FormatCompatibilityManager;
pub use format_compat::FormatConverter;
pub use format_compat::HuggingFaceConverter;
pub use format_compat::PackageFormat;
pub use format_compat::PyTorchConverter;
pub use governance::ComplianceIssue;
pub use governance::ComplianceLevel;
pub use governance::ComplianceMetadata;
pub use governance::ComplianceReport;
pub use governance::IssueSeverity as ComplianceIssueSeverity;
pub use governance::LineageEdge;
pub use governance::LineageQueryResult;
pub use governance::LineageRelation;
pub use governance::LineageStatistics;
pub use governance::LineageTracker;
pub use governance::ProvenanceInfo;
pub use governance::TransformationRecord;
pub use importer::ImportConfig;
pub use importer::PackageImporter;
pub use lazy_resources::EvictionStrategy;
pub use lazy_resources::LazyResource;
pub use lazy_resources::LazyResourceManager;
pub use lazy_resources::MappedResource;
pub use lazy_resources::ResourceStreamWriter;
pub use lazy_resources::StreamingResource;
pub use manifest::ModuleInfo;
pub use manifest::PackageManifest;
pub use manifest::ResourceInfo;
pub use mirror::FailoverConfig;
pub use mirror::Mirror;
pub use mirror::MirrorConfig;
pub use mirror::MirrorHealth;
pub use mirror::MirrorManager;
pub use mirror::MirrorSelection;
pub use mirror::MirrorStatistics;
pub use mirror::SelectionStrategy;
pub use mirror::SyncStatus;
pub use monitoring::Alert;
pub use monitoring::AlertSeverity;
pub use monitoring::AlertThreshold;
pub use monitoring::AnalyticsReport;
pub use monitoring::MetricPoint;
pub use monitoring::MetricType;
pub use monitoring::MetricsCollector;
pub use monitoring::PackageStats;
pub use monitoring::RegionStats;
pub use monitoring::TimeSeries;
pub use monitoring::TimeSeriesStats;
pub use monitoring::UserStats;
pub use optimization::CompressibleResource;
pub use optimization::CompressionAnalysis;
pub use optimization::DeduplicationAnalysis;
pub use optimization::OptimizationOpportunity;
pub use optimization::OptimizationReport;
pub use optimization::OptimizationType;
pub use optimization::PackageOptimizer;
pub use package::Package;
pub use profiling::global_profiler;
pub use profiling::profile;
pub use profiling::OperationProfiler;
pub use profiling::PackageOperation;
pub use profiling::ProfileEntry;
pub use profiling::ProfileGuard;
pub use profiling::ProfileStats;
pub use replication::ConflictResolution;
pub use replication::ConsistencyLevel;
pub use replication::NodeStatus;
pub use replication::OperationStatus;
pub use replication::ReplicaMetadata;
pub use replication::ReplicationConfig;
pub use replication::ReplicationConflict;
pub use replication::ReplicationManager;
pub use replication::ReplicationNode;
pub use replication::ReplicationOperation;
pub use replication::ReplicationStatistics;
pub use replication::ReplicationStrategy;
pub use resources::Resource;
pub use resources::ResourceType;
pub use sandbox::CapabilitySet;
pub use sandbox::FilesystemPolicy;
pub use sandbox::NetworkPolicy;
pub use sandbox::PortRange;
pub use sandbox::ResourceLimits;
pub use sandbox::ResourceMonitor;
pub use sandbox::ResourceUsageStats;
pub use sandbox::Sandbox;
pub use sandbox::SandboxConfig;
pub use sandbox::SandboxResult;
pub use sandbox::SandboxViolation;
pub use sandbox::ViolationSeverity;
pub use sandbox::ViolationType;
pub use security::EncryptedPackage;
pub use security::EncryptionAlgorithm;
pub use security::PackageEncryptor;
pub use security::PackageSignature;
pub use security::PackageSigner;
pub use security::SignatureAlgorithm;
pub use storage::LocalStorage;
pub use storage::StorageBackend;
pub use storage::StorageManager;
pub use storage::StorageObject;
pub use storage::StorageStats;
pub use syslog_integration::SyslogClient;
pub use syslog_integration::SyslogConfig;
pub use syslog_integration::SyslogFacility;
pub use syslog_integration::SyslogProtocol;
pub use syslog_integration::SyslogSeverity;
pub use syslog_integration::SyslogStatistics;
pub use syslog_integration::SyslogTransport;
pub use utils::calculate_checksum;
pub use utils::calculate_hash;
pub use utils::estimate_compression_ratio;
pub use utils::format_file_size;
pub use utils::get_file_extension;
pub use utils::get_relative_path;
pub use utils::import_module;
pub use utils::is_safe_path;
pub use utils::normalize_path;
pub use utils::parse_content_type;
pub use utils::sanitize_filename;
pub use utils::validate_package_metadata;
pub use utils::validate_package_name;
pub use utils::validate_resource_path;
pub use utils::validate_version;
pub use utils::verify_checksum;
pub use utils::MemoryStats;
pub use utils::PerformanceTimer;
pub use version::CompatibilityChecker;
pub use version::PackageVersion;
pub use version::VersionComparator;
pub use version::VersionRequirement;
pub use vulnerability::IssueType;
pub use vulnerability::ScanPolicy;
pub use vulnerability::ScanReport;
pub use vulnerability::SecurityIssue;
pub use vulnerability::Severity;
pub use vulnerability::VulnerabilityScanner;
pub use registry::PackageCache;
pub use registry::PackageMetadata;
pub use registry::RegistryClient;
pub use registry::RegistryConfig;
pub use registry::SearchResult;

Modules§

access_control
Role-Based Access Control (RBAC) for package distribution
audit
Audit logging for security compliance and tracking
audit_storage
Audit Log Storage Backends
backup
Backup and Recovery System
builder
Package Builder
cdn
Content Delivery Network (CDN) support for fast package distribution
cloud_storage
Cloud storage backend implementations
compression
Advanced compression algorithms for packages
delta
Delta patching for incremental package updates
dependency
Dependency resolution and management for packages
dependency_installer
Parallel dependency installation with async support
dependency_lockfile
Dependency lockfile management for reproducible builds
dependency_solver
Advanced dependency resolution using SAT-based constraint solving
diagnostics
Package diagnostics and analysis
exporter
Package exporter functionality
format_compat
Format compatibility layer for different model package formats
governance
Package Governance and Lineage Tracking
importer
Package importer functionality
lazy_resources
Lazy loading resource system for packages
manifest
Package manifest handling
mirror
Mirror management for high availability package distribution
monitoring
Package Monitoring and Analytics
optimization
Package optimization utilities
package
Core Package implementation
profiling
Performance profiling and monitoring utilities
registry
Package registry client
replication
Package Replication and High Availability
resources
Resource handling for packages
sandbox
Sandboxing system for safe package execution
security
Security features for package signing and encryption
storage
Cloud storage abstraction for package distribution
syslog_integration
Syslog Integration for Centralized Logging
utils
Utility functions
version
Package version handling and compatibility
vulnerability
Package vulnerability scanning and security auditing

Constants§

DEFAULT_MAX_PACKAGE_SIZE
Maximum package size in bytes (1GB by default)
DEFAULT_MAX_RESOURCES
Maximum number of resources per package
PACKAGE_EXTENSION
Default file extension for ToRSh packages
PACKAGE_FORMAT_VERSION
Package format version