pub struct RepoServer {
pub config: RepoConfig,
pub index: RepoIndex,
/* private fields */
}Expand description
Package repository server.
Manages the package index, handles uploads with optional signature verification, and provides search/listing capabilities.
Fields§
§config: RepoConfig§index: RepoIndexImplementations§
Source§impl RepoServer
impl RepoServer
Sourcepub fn with_config(config: RepoConfig) -> Self
pub fn with_config(config: RepoConfig) -> Self
Initialize with custom configuration.
Sourcepub fn add_package(
&mut self,
meta: RepoPackageMeta,
data: Vec<u8>,
signature: Option<&PackageSignature>,
) -> Result<(), KernelError>
pub fn add_package( &mut self, meta: RepoPackageMeta, data: Vec<u8>, signature: Option<&PackageSignature>, ) -> Result<(), KernelError>
Register a package in the index.
If require_signatures is enabled, the caller must provide a valid
signature. The package data is stored in the internal map.
Sourcepub fn remove_package(
&mut self,
name: &str,
version: &str,
) -> Result<(), KernelError>
pub fn remove_package( &mut self, name: &str, version: &str, ) -> Result<(), KernelError>
Remove a package (specific version) from the index and storage.
Sourcepub fn search(&self, pattern: &str) -> Vec<&RepoPackageMeta>
pub fn search(&self, pattern: &str) -> Vec<&RepoPackageMeta>
Search packages by substring match on name.
Sourcepub fn get_package_info(
&self,
name: &str,
version: &str,
) -> Option<&RepoPackageMeta>
pub fn get_package_info( &self, name: &str, version: &str, ) -> Option<&RepoPackageMeta>
Get metadata for a specific package name and version.
Sourcepub fn list_versions(&self, name: &str) -> Option<&Vec<RepoPackageMeta>>
pub fn list_versions(&self, name: &str) -> Option<&Vec<RepoPackageMeta>>
List all versions for a given package name.
Sourcepub fn list_packages(
&self,
offset: usize,
page_size: usize,
) -> Vec<&RepoPackageMeta>
pub fn list_packages( &self, offset: usize, page_size: usize, ) -> Vec<&RepoPackageMeta>
Paginated listing of all packages.
Returns at most page_size entries starting from offset.
Sourcepub fn generate_index_json(&self) -> String
pub fn generate_index_json(&self) -> String
Generate a JSON-like index string for HTTP serving.
Sourcepub fn verify_upload(
&self,
signature: &PackageSignature,
archive_data: &[u8],
) -> bool
pub fn verify_upload( &self, signature: &PackageSignature, archive_data: &[u8], ) -> bool
Verify an upload signature using Ed25519 marker check.
Sourcepub fn handle_request(&self, req: &RepoRequest) -> RepoResponse
pub fn handle_request(&self, req: &RepoRequest) -> RepoResponse
Route an HTTP request to the appropriate handler.
Sourcepub fn get_package_data(&self, name: &str, version: &str) -> Option<&Vec<u8>>
pub fn get_package_data(&self, name: &str, version: &str) -> Option<&Vec<u8>>
Get the raw package data for download.
Sourcepub fn total_storage_bytes(&self) -> u64
pub fn total_storage_bytes(&self) -> u64
Total stored package data in bytes.