Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Uri does not parse valid URIs with empty authority portion

Abierto
#696 3 comentarios 7 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
rust

Línea de trabajo

Empieza por los puntos de entrada Uri parser y Uri::from_parts descritos en el issue, y compara su comportamiento con la regla de autoridad vacía de RFC 3986. Reproduce los dos ejemplos proporcionados y, después, añade cobertura específica que muestre el tratamiento previsto y confirme el comportamiento resultante del análisis y la construcción de partes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Per RFC 3986, a valid URI may contain an empty authority (via an empty reg-name). However, it does not parse correctly by the Uri type:

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=54db213feefae8e5b47294b4fcdbdad7

[src/main.rs:6:5] "file:///a/b/c".parse::<Uri>() = Err(
    InvalidUri(
        InvalidFormat,
    ),

Similarly, from_parts complains specifically that the authority is missing:

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=0d31ed893d7f6cb8b37df6353eecfe8a

[src/main.rs:11:5] Uri::from_parts(parts) = Err(
    InvalidUriParts(
        InvalidUri(
            AuthorityMissing,
        ),
    ),

I could look into a change here, but note this fix would also be a breaking behavior change, and if any users are intentionally using this to enforce a non-empty authority, then they would be impacted.

cc @seanmonstar @LucioFranco - thanks!

Lenguaje dominante
Rust
Estrellas
1.4k
Forks
378
Merge medio
1 d 21 h
PR fusionados (30 d)
5

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de hyperium/http

Todos los issues de hyperium/http

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.