Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

353
Vistas
¿Cómo realizo una solicitud HTTP dentro de una función wasm_bindgen en Rust?

Estoy desarrollando un paquete NODE JS usando Rust y wasm-pack para compilar, y necesito realizar solicitudes HTTP en mi código. Traté de usar la biblioteca reqwest , por lo que todo funciona bien en la prueba, pero aparece un error al empaquetar.

 #![allow(non_snake_case)] use reqwest; use wasm_bindgen::prelude::*; // function #[wasm_bindgen] pub fn makeGetRequest(url: &str) -> String { let mut resp = reqwest::get(url).unwrap(); resp.text().unwrap() } // test #[cfg(test)] mod tests { use super::*; #[test] fn test_makeGetRequest() { let url = "https://stackoverflow.com/"; let body = makeGetRequest(url); assert!(body.len() > 0); } }

Configuración Cargo.toml :

 ... [lib] crate-type = ["cdylib"] [dependencies] wasm-bindgen = "0.2" reqwest = "0.9"

Empaco el proyecto con el comando:

 wasm-pack build --release --target nodejs

Y me sale el error:

 ... error: could not compile `net2`

Descubrí que parece que net2 no es compatible con wasm-pack , por lo que tal vez no pueda usar reqwest en mi caso: error de informe de compilación de wasm-pack: no se pudo compilar `net2`

¿Hay alguna forma de realizar solicitudes HTTP sincrónicas que se puedan empaquetar con wasm-pack correctamente?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No funcionará tan fácilmente como cabría esperar: el código de bytes WASM se ejecuta en un entorno protegido sin acceso a funciones del sistema operativo como disco, red, generadores aleatorios convencionales y cualquier otro tipo de E/S. En consecuencia, en el momento en que compile cualquier código de Rust utilizando dichas funciones en Wasm, no funcionará.

Desafortunadamente, su código (por ejemplo, el acceso a archivos) generalmente incluso se compila en silencio y luego falla de manera misteriosa durante el tiempo de ejecución. Esto no es a lo que te acostumbraste al usar Rust y es un gran inconveniente de la pila actual de Wasm Rust.

Para acceder a las funciones del sistema operativo, necesitará WASI (Interfaz del sistema Wasm) como una extensión. Para habilitar Wasi en NodeJs, puede usar algo como WasmerJs; consulte, por ejemplo,este artículo que proporciona un breve resumen para hacerlo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda