- vừa được xem lúc

Cách tạo Web Apps trong Rust thuần túy

0 0 1

Người đăng: Vũ Tuấn

Theo Viblo Asia

TinyWeb cho phép xây dựng các ứng dụng phía khách hàng trong Rust thuần túy, tương tự như các ứng dụng phía backend, tận dụng hệ thống kiểu dữ liệu chặt chẽ của ngôn ngữ và công cụ tích hợp mạnh mẽ.

TinyWeb có kích thước rất nhỏ với dưới 800 dòng mã, không cần bước xây dựng và không có phụ thuộc bên ngoài. Tuy nhiên, nó hỗ trợ các ứng dụng web đầy đủ tính năng!

Lựa chọn 1: Sử dụng dự án khởi động

Fork dự án tinyweb-starter

git clone https://github.com/LiveDuo/tinyweb-starter

Lựa chọn 2. Tạo một dự án mới

1. Tạo một dự án Rust mới

Tạo một dự án Rust mới với lệnh:

cargo new tinyweb-example --lib

Thêm dòng crate-type =["cdylib"] vào tệp Cargo.toml và cài đặt crate với lệnh:

cargo add tinyweb --git https://github.com/LiveDuo/tinyweb

2. Thêm mã mẫu

Cập nhật tệp src/lib.rs:

use tinyweb::element::El;
use tinyweb::invoke::Js; fn component() -> El { El::new("div") .child(El::new("button").text("print").on("click", move |_| { Js::invoke("alert('hello browser')", &[]); }))
} #[no_mangle]
pub fn main() { let body = Js::invoke("return document.querySelector('body')", &[]).to_ref().unwrap(); component().mount(&body);
}

3. Tải wasm trong HTML

Tạo một tệp index.html trong một thư mục public mới:

<!DOCTYPE html>
<html> <head> <meta charset="utf-8"> <script src="https://cdn.jsdelivr.net/gh/LiveDuo/tinyweb/src/js/main.js"></script> <script type="application/wasm" src="client.wasm"></script> </head> <body></body>
</html>

4. Xây dựng wasm

Xây dựng dự án với lệnh:

cargo build --target wasm32-unknown-unknown -r

Sau đó, sao chép tệp .wasm vào đúng vị trí với lệnh:

cp target/wasm32-unknown-unknown/release/*.wasm public/client.wasm

Cuối cùng, phục vụ thư mục public với bất kỳ máy chủ HTTP tĩnh nào.

Bình luận

Bài viết tương tự

- vừa được xem lúc

The Twelve-Factor App, cẩm nang gối đầu giường trong xây dựng application (Phần 1)

Giới thiệu. Ngày nay các phần mềm được triển khai dưới dạng các dịch vụ, chúng được gọi là các web apps hay software-as-a-service (SaaS).

0 0 39

- vừa được xem lúc

8 Sai lầm phổ biến khi lập trình Android

1. Hard code.

0 0 199

- vừa được xem lúc

Popular interview question: What is the difference between Process and Thread? 10 seconds a day

Video được đăng tại channel Tips Javascript

0 0 38

- vừa được xem lúc

Thuật toán và ứng dụng - P1

Mục đích series. . Những bài toán gắn liền với thực tế. Từ đó thấy được tầm quan trọng của thuật toán trong lập trình.

0 0 42

- vừa được xem lúc

Tác dụng của Docker trong quá trình học tập

Docker bây giờ gần như là kiến thức bắt buộc đối với các anh em Dev và Devops, nhưng mà đối với sinh viên IT nói chung vẫn còn khá mơ hồ và không biết tác dụng thực tế của nó. Hôm nay mình sẽ chia sẻ

0 0 47

- vừa được xem lúc

Làm giàu trong ngành IT

Hầu như mọi người đều đi làm để kiếm tiền, ít người đi làm vì thấy cái nghề đó thú vị lắm. Bây giờ vất cho mình 100 tỷ bảo mình bỏ nghề thì mình cũng bỏ thôi.

0 0 49