Add Image Optimization Support
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza con los bindings de WIT en stubs/wit_world/imports/image_optimizer.py e inspecciona las implementaciones no compatibles en src/component/image_optimizer.rs y src/wiggle_abi/image_optimizer.rs. Compara la forma solicitada del wrapper con las APIs de Rust y JavaScript, y añade cobertura para la validación de parámetros, las conversiones de tipos y los errores Unsupported; se considera terminado cuando la API documentada existe y sus pruebas pasan sin requerir compatibilidad con Viceroy.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Overview
Add support for Fastly's Image Optimizer API, enabling on-the-fly image transformation and optimization.
WIT Interface
interface image-optimizer {
use http-body.{body};
use http-req.{request};
use http-resp.{response-with-body};
use types.{error};
use backend.{backend};
resource extra-image-optimizer-transform-options;
record image-optimizer-transform-options {
sdk-claims-opts: option<string>,
extra: option<borrow<extra-image-optimizer-transform-options>>,
}
transform-image-optimizer-request: func(origin-image-request: borrow<request>, origin-image-request-body: option<body>, origin-image-request-backend: borrow<backend>, io-transform-options: image-optimizer-transform-options) -> result<response-with-body, error>;
}
WIT bindings: stubs/wit_world/imports/image_optimizer.py
API Design
- Simple function-based API:
transform_image(request, body, backend, options) ImageOptimizerOptionsdataclass for transformation parameters- Returns tuple of
(Response, Body)with optimized image - Body should be
io.IOBase-compatible for streaming large images - Supports query parameter-based transformations (width, height, format, quality, etc.)
- Integration with Backend and Request/Response APIs
Cross-SDK Comparison: Rust has transform_image_optimizer_request(), JS has similar. Go support may vary. This is a specialized/premium feature - Python wrapper should match Rust's approach with transform function accepting request, backend, and options.
Viceroy Testing
Image Optimizer is NOT supported in Viceroy. The implementation returns Error::Unsupported for all calls (src/component/image_optimizer.rs:14, src/wiggle_abi/image_optimizer.rs:18).
Tests should:
- Verify the API wrapper exists and accepts correct parameters
- Skip or mark as expected to fail any tests that actually call
transform_image_optimizer_request() - Focus on testing parameter validation, type conversions, and error handling for
Unsupportederrors
This API is primarily testable in production or staging environments.
Reference
- Lenguaje dominante
- Python
- Estrellas
- 5
- Forks
- 1
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fastly/compute-sdk-python
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
fastly/compute-sdk-python#116 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
fastly/compute-sdk-python#98 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
fastly/compute-sdk-python#74 ·
-
Add HTTP Downstream Metadata API Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
fastly/compute-sdk-python#61 ·
-
fastly/compute-sdk-python#60 · 1 asignado ·
Todos los issues de fastly/compute-sdk-python
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
anthropics/skills#1811 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
speaches-ai/speaches#678 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
datalayer/mcp-compose#42 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
conda-forge/spacy-feedstock#177 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
UKGovernmentBEIS/inspect_evals#2523 ·