Skip to main content

acyclic_objects/
lib.rs

1#![doc = include_str!("../README.md")]
2
3pub mod conformance;
4
5/// Generated public gRPC schema and client/server bindings.
6#[allow(missing_docs, clippy::all, clippy::pedantic, clippy::too_many_lines)]
7pub mod wire {
8    include!("generated/acyclic.objects.v1.rs");
9}
10
11/// Canonical public descriptor set used by compatibility and conformance gates.
12pub const FILE_DESCRIPTOR_SET: &[u8] = include_bytes!("generated/acyclic-objects-v1.bin");
13
14/// Fixed public compatibility limits.
15pub mod limits {
16    /// Maximum UTF-8 object-key length.
17    pub const KEY_BYTES: usize = 1_024;
18    /// Maximum encoded user metadata per version.
19    pub const USER_METADATA_BYTES: usize = 2 * 1_024;
20    /// Maximum entries returned in one listing page.
21    pub const LIST_PAGE_ENTRIES: u32 = 1_000;
22    /// Maximum complete object size.
23    pub const OBJECT_BYTES: u64 = 5 * 1_024 * 1_024 * 1_024 * 1_024;
24    /// Maximum single-put size.
25    pub const SINGLE_PUT_BYTES: u64 = 5 * 1_024 * 1_024 * 1_024;
26    /// Maximum multipart part count.
27    pub const MULTIPART_PARTS: u32 = 10_000;
28    /// Minimum non-final multipart part size.
29    pub const MIN_MULTIPART_PART_BYTES: u64 = 5 * 1_024 * 1_024;
30    /// Maximum multipart part size.
31    pub const MAX_MULTIPART_PART_BYTES: u64 = 5 * 1_024 * 1_024 * 1_024;
32    /// Retention of exact idempotency outcomes.
33    pub const IDEMPOTENCY_RETENTION_SECONDS: u64 = 7 * 24 * 60 * 60;
34    /// Lifetime of an ordinary listing view.
35    pub const LISTING_VIEW_SECONDS: u64 = 24 * 60 * 60;
36    /// Minimum grace before unreachable bytes become reclaimable.
37    pub const RECLAMATION_GRACE_SECONDS: u64 = 7 * 24 * 60 * 60;
38}
39
40#[cfg(feature = "grpc")]
41mod grpc;
42#[cfg(feature = "grpc")]
43pub use grpc::*;
44
45#[cfg(feature = "local")]
46mod local;
47#[cfg(feature = "local")]
48pub use local::*;
49
50mod provider;
51pub use provider::*;