Expand description
§Qubit MIME
MIME type detection based on filename glob rules, content magic rules, and optional native command backends.
The crate ships with two detector providers:
repository: an embedded detector that uses the bundled MIME repository.file: a detector that delegates content detection to the systemfile --mime-type --briefcommand and uses the repository for filename guesses.
Detectors are created through MimeDetectorRegistry. The configured
default detector is tried first, followed by the configured fallback chain.
The special selector auto chooses the highest-priority available provider
from the registry.
§Examples
Create a detector from the default configuration:
use qubit_mime::{
MimeConfig,
MimeDetector,
MimeDetectorRegistry,
MimeResult,
};
let detector =
MimeDetectorRegistry::default_registry()?.create_default_box(&MimeConfig::default())?;
assert_eq!(
Some("application/pdf".to_owned()),
detector.detect_by_filename("document.pdf"),
);Configure a preferred detector and an explicit fallback. This is useful when
file should be used on systems where it is available, while still allowing
deterministic repository detection on minimal CI images:
use qubit_config::Config;
use qubit_mime::{
CONFIG_MIME_DETECTOR_DEFAULT,
CONFIG_MIME_DETECTOR_FALLBACKS,
MimeConfig,
MimeDetector,
MimeDetectorRegistry,
MimeResult,
};
let mut source = Config::new();
source.set(CONFIG_MIME_DETECTOR_DEFAULT, "file")?;
source.set(CONFIG_MIME_DETECTOR_FALLBACKS, "repository")?;
let config = MimeConfig::from_config(&source)?;
let detector = MimeDetectorRegistry::default_registry()?.create_default_box(&config)?;
assert_eq!(
Some("image/png".to_owned()),
detector.detect_by_filename("image.png"),
);Re-exports§
pub use classifier::FfprobeCommandMediaStreamClassifier;pub use classifier::FfprobeCommandMediaStreamClassifierProvider;pub use classifier::FileBasedMediaStreamClassifier;pub use classifier::MediaStreamClassifier;pub use classifier::MediaStreamClassifierAvailability;pub use classifier::MediaStreamClassifierBackend;pub use classifier::MediaStreamClassifierProvider;pub use classifier::MediaStreamClassifierRegistry;pub use classifier::MediaStreamClassifierSpec;pub use classifier::MediaStreamType;pub use detector::DetectionSource;pub use detector::FileBasedMimeDetector;pub use detector::FileCommandMimeDetector;pub use detector::FileCommandMimeDetectorProvider;pub use detector::MimeDetectionPolicy;pub use detector::MimeDetector;pub use detector::MimeDetectorAvailability;pub use detector::MimeDetectorBackend;pub use detector::MimeDetectorCore;pub use detector::MimeDetectorProvider;pub use detector::MimeDetectorRegistry;pub use detector::MimeDetectorSpec;pub use detector::RepositoryMimeDetector;pub use detector::RepositoryMimeDetectorProvider;pub use detector::StreamBasedMimeDetector;pub use repository::MagicValueType;pub use repository::MimeGlob;pub use repository::MimeMagic;pub use repository::MimeMagicMatcher;pub use repository::MimeRepository;pub use repository::MimeType;pub use repository::MimeTypeBuilder;
Modules§
- classifier
- Media stream classifier implementations.
- detector
- MIME detector implementations.
- repository
- MIME repository data model and freedesktop rule parsing.
Structs§
- Mime
Config - Runtime configuration for MIME detectors.
- Provider
Descriptor - Stable provider metadata used for registration and selection.
- Provider
Name - Stable provider id or alias accepted by a registry.
Enums§
- Mime
Error - Error type for MIME repository parsing and I/O backed detection.
- Provider
Availability - Availability of a provider in the current runtime environment.
- Provider
Create Error - Error returned by one provider while creating a service.
- Provider
Failure - Failure recorded for one provider candidate.
- Provider
Registry Error - Error returned by provider registries.
- Provider
Selection - Provider candidates used by registry selection.
Constants§
- AVI_
MIME_ TYPE - AVI MIME type.
- CONFIG_
MEDIA_ STREAM_ CLASSIFIER_ DEFAULT - Configuration key selecting the default media stream classifier implementation.
- CONFIG_
MIME_ AMBIGUOUS_ MIME_ MAPPING - Configuration key defining ambiguous extension to MIME mappings.
- CONFIG_
MIME_ DETECTOR_ DEFAULT - Configuration key selecting the default MIME detector implementation.
- CONFIG_
MIME_ DETECTOR_ FALLBACKS - Configuration key listing fallback MIME detector implementations.
- CONFIG_
MIME_ ENABLE_ PRECISE_ DETECTION - Configuration key controlling precise MIME detection.
- CONFIG_
MIME_ PRECISE_ DETECTION_ PATTERNS - Configuration key listing extensions that should use precise detection.
- CSV_
MIME_ TYPE - CSV MIME type.
- CSV_
MIME_ TYPES - CSV MIME types.
- DEFAULT_
AMBIGUOUS_ MIME_ MAPPING - Default ambiguous extension mapping:
extension:video_mime,audio_mime. - DEFAULT_
ENABLE_ PRECISE_ DETECTION - Default value for precise media stream based detection.
- DEFAULT_
MEDIA_ STREAM_ CLASSIFIER - Default media stream classifier backend selector.
- DEFAULT_
MIME_ DETECTOR - Default MIME detector backend selector.
- DEFAULT_
MIME_ DETECTOR_ FALLBACKS - Default fallback MIME detector backend selector list.
- DEFAULT_
PRECISE_ DETECTION_ PATTERNS - Default comma-separated extensions that may need media stream classification.
- ENV_
MEDIA_ STREAM_ CLASSIFIER_ DEFAULT - Environment variable selecting the default media stream classifier implementation.
- ENV_
MIME_ DETECTOR_ AMBIGUOUS_ MIME_ MAPPING - Environment variable defining ambiguous extension to MIME mappings.
- ENV_
MIME_ DETECTOR_ DEFAULT - Environment variable selecting the default MIME detector implementation.
- ENV_
MIME_ DETECTOR_ ENABLE_ PRECISE_ DETECTION - Environment variable controlling precise MIME detection.
- ENV_
MIME_ DETECTOR_ FALLBACKS - Environment variable listing fallback MIME detector implementations.
- ENV_
MIME_ DETECTOR_ PRECISE_ DETECTION_ PATTERNS - Environment variable listing extensions that should use precise detection.
- EXCEL_
MIME_ TYPE - Default Microsoft Excel MIME type.
- EXCEL_
MIME_ TYPES - Microsoft Excel MIME types.
- FLV_
MIME_ TYPE - FLV MIME type.
- GIF_
MIME_ TYPE - GIF MIME type.
- JPEG_
MIME_ TYPE - JPEG MIME type.
- JSON_
MIME_ TYPE - JSON MIME type.
- JSON_
MIME_ TYPES - JSON MIME types.
- MOV_
MIME_ TYPE - QuickTime MIME type.
- MP3_
MIME_ TYPE - MP3 MIME type.
- MP4_
MIME_ TYPE - MP4 MIME type.
- OGG_
MIME_ TYPE - OGG audio MIME type.
- PDF_
MIME_ TYPE - PDF MIME type.
- PDF_
MIME_ TYPES - PDF MIME types.
- PNG_
MIME_ TYPE - PNG MIME type.
- POWERPOINT_
MIME_ TYPE - Default Microsoft PowerPoint MIME type.
- POWERPOINT_
MIME_ TYPES - Microsoft PowerPoint MIME types.
- WAV_
MIME_ TYPE - WAV MIME type.
- WEBM_
MIME_ TYPE - WEBM video MIME type.
- WMV_
MIME_ TYPE - WMV MIME type.
- WORD_
MIME_ TYPE - Default Microsoft Word MIME type.
- WORD_
MIME_ TYPES - Microsoft Word MIME types.
- XML_
MIME_ TYPE - XML MIME type.
- XML_
MIME_ TYPES - XML MIME types.
Traits§
- Service
Provider - Factory contract for one service implementation.
- Service
Spec - Type-level description of one pluggable service family.
Type Aliases§
- Mime
Result - A convenient alias for results returned by MIME-related functions.