Laboratoria: xx XII

Celem zajęć jest praca z językiem Rust w kontekście serwowania usług w sieci.

Wariant 1.

Napisz serwer webowy, który trzyma kolekcję liczników. Powinien wystawiać trzy endpointy:

  1. register_counter (zapytanie typu POST): Jedyny argument to napis, będący identyfikatorem nowego licznika.
  2. increase_counter (zapytanie typu POST): Jako argument przyjmuje obiekt JSONowy, który powinien posiadać dwa pola: identyfikator licznika i wartość, o jaką powinien zostać zwiększony.
  3. get_counter (zapytanie typu GET): Jedyny argument to napis, będący identyfikatorem licznika. Powinien zwrócić aktualny stan.

Polecane frameworki:

Dalsze kroki:

Wariant 2.

Napisz benchmarking liczenia tysiąckrotnej iteracji dowolnej funkcji haszującej. Benchmark powinien zostać wykonany w środowisku przeglądarki internetowej.

Szczegóły rozwiązania:

Strona internetowa powinna posiadać dwa przyciski:

  • jeden z nich powinien uruchomić procedurę haszowania natywnie, w Java Scripcie
  • drugi z nich powinien uruchomić procedurę haszowania w WebAssembly, zaimplementowaną w języku Rust

Po zakończeniu obliczeń powinna zostać wyświetlona informacja, jak długo trwał eksperyment.

Tutorial: https://developer.mozilla.org/en-US/docs/WebAssembly/Rust_to_Wasm.