Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

351
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!