| Crates.io | hemmer-provider-generator-analyzer |
| lib.rs | hemmer-provider-generator-analyzer |
| version | 0.4.2 |
| created_at | 2026-01-18 20:30:04.198293+00 |
| updated_at | 2026-01-19 03:44:25.814721+00 |
| description | SDK analyzer for Hemmer Provider Generator - automatically generates provider metadata |
| homepage | |
| repository | https://github.com/hemmer-io/hemmer-provider-generator |
| max_upload_size | |
| id | 2053035 |
| size | 111,898 |
Automated SDK analyzer that generates Phase 2 metadata YAML files by analyzing provider SDK repositories.
The SDK analyzer automatically detects patterns in cloud provider SDK repositories and generates provider metadata YAML files with confidence scores. This reduces the time to add new cloud providers from ~4 hours to ~30 minutes.
cargo_metadataaws-sdk-{service})syn to find Client typesuse hemmer_provider_generator_analyzer::SdkAnalyzer;
use std::path::PathBuf;
let analyzer = SdkAnalyzer::new(
PathBuf::from("./aws-sdk-rust"),
"aws".to_string()
);
let result = analyzer.analyze().expect("Analysis failed");
// Check confidence
println!("Overall confidence: {:.2} ({})",
result.confidence.overall,
result.confidence.level()
);
// Write YAML
result.write_yaml("providers/aws.sdk-metadata.yaml")
.expect("Failed to write YAML");
# Analyze local SDK checkout
hemmer-provider-generator analyze-sdk \
--sdk-path ~/code/aws-sdk-rust \
--name aws
# Clone and analyze remote repository
hemmer-provider-generator analyze-sdk \
--clone https://github.com/awslabs/aws-sdk-rust \
--name aws
# Clone specific branch or tag
hemmer-provider-generator analyze-sdk \
--clone https://github.com/custom/sdk \
--branch v1.0.0 \
--name custom-cloud
# Custom output location
hemmer-provider-generator analyze-sdk \
--sdk-path ./custom-sdk \
--name custom-cloud \
--output ./my-providers/custom.yaml
# Set minimum confidence threshold
hemmer-provider-generator analyze-sdk \
--sdk-path ./sdk \
--name provider \
--min-confidence 0.6 \
--verbose
Overall confidence is calculated as a weighted average:
crates/analyzer/
├── src/
│ ├── lib.rs # Public API
│ ├── analyzer.rs # Core orchestration
│ ├── git_cloner.rs # Git repository cloning
│ ├── workspace_detector.rs # Cargo workspace analysis
│ ├── crate_pattern_detector.rs # Crate naming patterns
│ ├── client_detector.rs # Client type detection (syn)
│ ├── config_detector.rs # Config pattern detection
│ ├── error_detector.rs # Error categorization
│ ├── confidence.rs # Confidence scoring
│ └── output.rs # YAML generation
Goal: 75% automation for adding new cloud providers
The analyzer automates detection of:
Fields that always need manual review:
# Run unit tests
cargo test --package hemmer-provider-generator-analyzer
# Run with verbose output
cargo test --package hemmer-provider-generator-analyzer -- --nocapture
Test coverage: 25 unit tests covering all detection modules.
Apache 2.0 - See ../../LICENSE