1#![allow(clippy::result_large_err)]
38#![deny(missing_docs)]
39
40pub mod access_control;
42pub mod audit;
43pub mod audit_storage;
44pub mod backup;
45pub mod builder;
46pub mod cdn;
47pub mod cloud_storage;
48pub mod compression;
49pub mod delta;
50pub mod dependency;
51pub mod dependency_installer;
52pub mod dependency_lockfile;
53pub mod dependency_solver;
54pub mod diagnostics;
55pub mod exporter;
56pub mod format_compat;
57pub mod governance;
58pub mod importer;
59pub mod lazy_resources;
60pub mod manifest;
61pub mod mirror;
62pub mod monitoring;
63pub mod optimization;
64pub mod package;
65pub mod profiling;
66pub mod replication;
67pub mod resources;
68pub mod sandbox;
69pub mod security;
70pub mod storage;
71pub mod syslog_integration;
72pub mod utils;
73pub mod version;
74pub mod vulnerability;
75
76#[cfg(feature = "async")]
78pub mod async_ops;
79pub mod registry;
80
81pub use access_control::{
83 AccessCheckResult, AccessControlManager, AccessLevel, AclEntry, Organization,
84 OrganizationMembership, PackageOwnership, Permission, Role, User,
85};
86pub use audit::{
87 ActionResult, AuditEvent, AuditEventType, AuditListener, AuditLogConfig, AuditLogFormat,
88 AuditLogger, AuditQuery, AuditSeverity, AuditStatistics,
89};
90pub use audit_storage::{
91 AuditStorage, DatabaseStatistics, InMemoryStorage, PoolStatistics, PostgresStorage,
92 PostgresStorageConfig, SqliteStorage, SqliteStorageConfig, SslMode, StorageStatistics,
93};
94pub use backup::{
95 BackupConfig, BackupDestination, BackupManager, BackupMetadata, BackupStatistics,
96 BackupStrategy, RecoveryPoint, RetentionPolicy, VerificationResult,
97};
98pub use builder::{BuilderConfig, PackageBuilder};
99pub use cdn::{
100 CacheControl, CdnConfig, CdnManager, CdnProvider, CdnRegion, CdnStatistics, EdgeNode,
101 EdgeNodeStatus,
102};
103pub use cloud_storage::{
104 AzureConfig, GcsConfig, MockAzureStorage, MockGcsStorage, MockS3Storage, S3Config,
105};
106pub use compression::{
107 AdvancedCompressor, CompressionAlgorithm, CompressionConfig, CompressionLevel,
108 CompressionResult, CompressionStats, CompressionStrategy, DecompressionResult,
109 ParallelCompressor,
110};
111pub use delta::{
112 DeltaOperation, DeltaPackageExt, DeltaPatch, DeltaPatchApplier, DeltaPatchBuilder,
113};
114pub use dependency::{
115 DependencyConflict, DependencyGraph, DependencyResolver, DependencySpec, LocalPackageRegistry,
116 PackageInfo, PackageRegistry, ResolutionStrategy, ResolvedDependency,
117};
118pub use dependency_installer::{
119 DownloadOptions, InstallationPlan, InstallationProgress, ParallelDependencyInstaller,
120 PlannedPackage,
121};
122pub use dependency_lockfile::{
123 LockedDependency, LockedPackage, LockfileGenerator, LockfileValidator, PackageLockfile,
124};
125pub use dependency_solver::{
126 Assignment, CdclSolver, DependencySatSolver, DependencySolution, SatClause, SatLiteral,
127 SatVariable, VersionConstraint,
128};
129pub use diagnostics::{
130 DiagnosticIssue, DiagnosticReport, HealthStatus, IssueCategory, IssueSeverity,
131 PackageDiagnostics, PackageStatistics, ResourceValidation, SecurityAssessment,
132 ValidationResult,
133};
134pub use exporter::{ExportConfig, PackageExporter};
135pub use format_compat::{
136 FormatCompatibilityManager, FormatConverter, HuggingFaceConverter, PackageFormat,
137 PyTorchConverter,
138};
139pub use governance::{
140 ComplianceIssue, ComplianceLevel, ComplianceMetadata, ComplianceReport,
141 IssueSeverity as ComplianceIssueSeverity, LineageEdge, LineageQueryResult, LineageRelation,
142 LineageStatistics, LineageTracker, ProvenanceInfo, TransformationRecord,
143};
144pub use importer::{ImportConfig, PackageImporter};
145pub use lazy_resources::{
146 EvictionStrategy, LazyResource, LazyResourceManager, MappedResource, ResourceStreamWriter,
147 StreamingResource,
148};
149pub use manifest::{ModuleInfo, PackageManifest, ResourceInfo};
150pub use mirror::{
151 FailoverConfig, Mirror, MirrorConfig, MirrorHealth, MirrorManager, MirrorSelection,
152 MirrorStatistics, SelectionStrategy, SyncStatus,
153};
154pub use monitoring::{
155 Alert, AlertSeverity, AlertThreshold, AnalyticsReport, MetricPoint, MetricType,
156 MetricsCollector, PackageStats, RegionStats, TimeSeries, TimeSeriesStats, UserStats,
157};
158pub use optimization::{
159 CompressibleResource, CompressionAnalysis, DeduplicationAnalysis, OptimizationOpportunity,
160 OptimizationReport, OptimizationType, PackageOptimizer,
161};
162pub use package::Package;
163pub use profiling::{
164 global_profiler, profile, OperationProfiler, PackageOperation, ProfileEntry, ProfileGuard,
165 ProfileStats,
166};
167pub use replication::{
168 ConflictResolution, ConsistencyLevel, NodeStatus, OperationStatus, ReplicaMetadata,
169 ReplicationConfig, ReplicationConflict, ReplicationManager, ReplicationNode,
170 ReplicationOperation, ReplicationStatistics, ReplicationStrategy,
171};
172pub use resources::{Resource, ResourceType};
173pub use sandbox::{
174 CapabilitySet, FilesystemPolicy, NetworkPolicy, PortRange, ResourceLimits, ResourceMonitor,
175 ResourceUsageStats, Sandbox, SandboxConfig, SandboxResult, SandboxViolation, ViolationSeverity,
176 ViolationType,
177};
178pub use security::{
179 EncryptedPackage, EncryptionAlgorithm, PackageEncryptor, PackageSignature, PackageSigner,
180 SignatureAlgorithm,
181};
182pub use storage::{LocalStorage, StorageBackend, StorageManager, StorageObject, StorageStats};
183pub use syslog_integration::{
184 SyslogClient, SyslogConfig, SyslogFacility, SyslogProtocol, SyslogSeverity, SyslogStatistics,
185 SyslogTransport,
186};
187#[cfg(feature = "with-nn")]
188pub use utils::export_module;
189pub use utils::{
190 calculate_checksum, calculate_hash, estimate_compression_ratio, format_file_size,
191 get_file_extension, get_relative_path, import_module, is_safe_path, normalize_path,
192 parse_content_type, sanitize_filename, validate_package_metadata, validate_package_name,
193 validate_resource_path, validate_version, verify_checksum, MemoryStats, PerformanceTimer,
194};
195pub use version::{CompatibilityChecker, PackageVersion, VersionComparator, VersionRequirement};
196pub use vulnerability::{
197 IssueType, ScanPolicy, ScanReport, SecurityIssue, Severity, VulnerabilityScanner,
198};
199
200#[cfg(feature = "async")]
201pub use async_ops::{AsyncPackageLoader, AsyncPackageSaver, BackgroundProcessor, DownloadProgress};
202pub use registry::{PackageCache, PackageMetadata, RegistryClient, RegistryConfig, SearchResult};
203
204pub const PACKAGE_FORMAT_VERSION: &str = "1.0.0";
211
212pub const PACKAGE_EXTENSION: &str = "torshpkg";
214
215pub const DEFAULT_MAX_PACKAGE_SIZE: usize = 1024 * 1024 * 1024;
217
218pub const DEFAULT_MAX_RESOURCES: usize = 10000;
220
221#[cfg(test)]
222mod tests {
223 use super::*;
224
225 #[test]
226 fn test_constants() {
227 assert_eq!(PACKAGE_FORMAT_VERSION, "1.0.0");
228 assert_eq!(PACKAGE_EXTENSION, "torshpkg");
229 assert!(DEFAULT_MAX_PACKAGE_SIZE > 0);
230 assert!(DEFAULT_MAX_RESOURCES > 0);
231 }
232
233 #[test]
234 fn test_format_version_parsing() {
235 let version = semver::Version::parse(PACKAGE_FORMAT_VERSION).unwrap();
236 assert_eq!(version.major, 1);
237 assert_eq!(version.minor, 0);
238 assert_eq!(version.patch, 0);
239 }
240}