paint-brush
Xây dựng một ứng dụng web đơn giản với Rust và WebAssugging: Hướng dẫn từng bướctừ tác giả@zhukmax
15,102 lượt đọc
15,102 lượt đọc

Xây dựng một ứng dụng web đơn giản với Rust và WebAssugging: Hướng dẫn từng bước

từ tác giả Max Zhuk8m2023/10/26
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Tìm hiểu cách xây dựng một ứng dụng web hiệu suất cao bằng Rust và WebAssugging.
featured image - Xây dựng một ứng dụng web đơn giản với Rust và WebAssugging: Hướng dẫn từng bước
Max Zhuk HackerNoon profile picture
0-item

Giới thiệu

Bạn đã bao giờ cảm thấy thất vọng với những hạn chế về hiệu suất của JavaScript chưa? Bạn không cô đơn. Khi các ứng dụng web trở nên phức tạp hơn, nhu cầu về các giải pháp hiệu suất cao cũng trở nên rõ ràng hơn. Nhập Rust và WebAssugging - hai công nghệ hứa hẹn không chỉ về hiệu suất mà còn về tính an toàn và hiệu quả. Trong bài viết này, chúng ta sẽ tìm hiểu quy trình xây dựng một ứng dụng web đơn giản bằng Rust và WebAssugging.


Tại sao lại là Rust và WebAssembly?

Rust là gì?

Rust là ngôn ngữ lập trình hệ thống nhằm mục đích cung cấp sự an toàn, tính đồng thời và hiệu suất của bộ nhớ. Nó được thiết kế để loại bỏ các lỗi phổ biến do con trỏ null, lỗi tràn bộ đệm và chạy đua dữ liệu gây ra, nhờ vào hệ thống loại mạnh mẽ và mô hình quyền sở hữu. Điều này làm cho Rust trở thành một lựa chọn lý tưởng để xây dựng phần mềm đáng tin cậy và hiệu quả.

Ưu điểm của rỉ sét

  • An toàn bộ nhớ : Mô hình quyền sở hữu của Rust đảm bảo rằng các biến có một chủ sở hữu duy nhất, ngăn ngừa rò rỉ bộ nhớ và truy cập dữ liệu trái phép.
  • Hiệu suất : Rust được thiết kế hướng tới tốc độ, cạnh tranh chặt chẽ với các ngôn ngữ như C và C++.
  • Đồng thời : Thiết kế ngôn ngữ của Rust giúp việc viết mã đồng thời dễ dàng hơn, khiến nó có khả năng mở rộng cao.
  • Hệ sinh thái phong phú : Với kho lưu trữ gói ngày càng phát triển, Cargo, Rust cung cấp nhiều thư viện và khung để phát triển web, thao tác dữ liệu, v.v.

WebAssugging là gì?

WebAssembly (thường được viết tắt là wasm) là một định dạng lệnh nhị phân đóng vai trò là mục tiêu biên dịch cho các ngôn ngữ cấp cao như C, C++ và Rust. Nó được thiết kế để trở thành một định dạng mã di động, hiệu quả, mang lại hiệu suất gần như nguyên bản trên các trình duyệt web.

Ưu điểm của WebAssugging

  • Hiệu suất : Mã WebAssembly thực thi ở tốc độ gần như gốc bằng cách tận dụng các khả năng phần cứng phổ biến.
  • Bảo mật : WebAssembly được thiết kế để bảo mật và được đóng hộp cát, thực thi bên trong một môi trường được bảo vệ tách biệt với hệ thống máy chủ.
  • Tính di động : WebAssugging độc lập với nền tảng, nghĩa là nó có thể chạy trên bất kỳ máy nào có trình duyệt web tương thích.
  • Khả năng tương tác : Các mô-đun WebAssugging có thể dễ dàng tích hợp vào các ứng dụng JavaScript, cho phép bạn tận dụng các công nghệ web hiện có.

Sức mạnh tổng hợp của Rust và WebAssugging

Việc kết hợp các tính năng an toàn và hiệu suất của Rust với tốc độ và tính di động của WebAssembly sẽ tạo ra một bộ đôi mạnh mẽ để phát triển web. Đây là lý do tại sao họ làm việc rất tốt với nhau:

  • Hiệu suất được tối ưu hóa : Rust tập trung vào các tính năng trừu tượng không tốn chi phí, đảm bảo rằng các mô-đun WebAssembly của bạn hoạt động gọn gàng và nhanh chóng.
  • An toàn và bảo mật : Cả Rust và WebAssugging đều ưu tiên thực thi an toàn, giúp ứng dụng web của bạn trở nên đáng tin cậy hơn.
  • Dễ tích hợp : Rust có hỗ trợ hạng nhất cho WebAssugging, giúp việc biên dịch mã Rust thành wasm và tích hợp nó vào các ứng dụng web của bạn trở nên đơn giản.

Bằng cách tận dụng Rust và WebAssugging, bạn không chỉ theo kịp các xu hướng phát triển web hiện đại; bạn đang đi trước đường cong.


Thiết lập môi trường phát triển của bạn

Trước khi đi sâu vào mã, điều quan trọng là phải thiết lập môi trường phát triển phù hợp với Rust và WebAssugging. Điều này sẽ đảm bảo rằng bạn có tất cả các công cụ và thư viện cần thiết theo ý mình, hợp lý hóa quá trình phát triển.

Cài đặt Rust

  1. Tải xuống Rust Installer : Truy cập trang web chính thức của Rust và tải xuống trình cài đặt phù hợp với hệ điều hành của bạn.

  2. Chạy Trình cài đặt : Mở thiết bị đầu cuối của bạn và chạy lệnh sau để cài đặt Rust và trình quản lý gói của nó, Cargo.

     curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  3. Xác minh cài đặt : Để đảm bảo Rust được cài đặt chính xác, hãy mở một cửa sổ terminal mới và chạy:

     rustc --version

    Bạn sẽ thấy phiên bản trình biên dịch Rust là đầu ra.

Cài đặt wasm-pack

wasm-pack là một công cụ để lắp ráp và đóng gói các thùng Rust nhắm mục tiêu WebAssugging.

  1. Cài đặt wasm-pack : Mở terminal của bạn và chạy lệnh sau:

     curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
  2. Xác minh cài đặt : Kiểm tra xem wasm-pack đã được cài đặt chưa bằng cách chạy:

     wasm-pack --version

Cài đặt Node.js và npm

Node.js và npm rất cần thiết để quản lý các phần phụ thuộc và chạy máy chủ web của bạn.

  1. Tải xuống Node.js : Truy cập trang web chính thức của Node.js và tải xuống trình cài đặt cho hệ điều hành của bạn.

  2. Chạy Trình cài đặt : Làm theo lời nhắc cài đặt để cài đặt cả Node.js và npm.

  3. Xác minh cài đặt : Mở một thiết bị đầu cuối và chạy các lệnh sau để kiểm tra xem Node.js và npm đã được cài đặt chưa:

     node --version npm --version

Thiết lập IDE của bạn

Mặc dù bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào để phát triển Rust và WebAssugging, các IDE như Visual Studio Code cung cấp các tiện ích mở rộng cho Rust cung cấp các tính năng như hoàn thành mã, linting và gỡ lỗi.

  1. Cài đặt Visual Studio Code : Tải xuống và cài đặt nó từ trang web chính thức .
  2. Cài đặt Rust Extension : Mở Visual Studio Code, truy cập chợ Tiện ích mở rộng và tìm kiếm tiện ích mở rộng "Rust" bằng Rust-lang. Cài đặt nó để hỗ trợ Rust nâng cao.


Lưu ý dành cho người dùng macOS : Các lệnh cài đặt được cung cấp trong hướng dẫn này tương thích với macOS. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo tài liệu chính thức tương ứng để biết hướng dẫn dành riêng cho nền tảng.


Tạo một chương trình Rust đơn giản

Trong phần này, chúng ta sẽ tạo một chương trình Rust để tính giai thừa của một số cho trước. Điều này sẽ cho chúng ta cơ hội khám phá một số tính năng của Rust, như hàm, vòng lặp và câu lệnh điều kiện, trong khi tạo ra một chương trình có tính toán chuyên sâu.

Khởi tạo dự án Rust

  1. Tạo thư viện Rust mới : Mở terminal của bạn và chạy lệnh sau để tạo dự án thư viện Rust mới.

     cargo new --lib factorial_calculator
  2. Điều hướng đến Thư mục dự án :

     cd factorial_calculator

Viết hàm giai thừa

  1. Mở tệp lib.rs : Điều hướng đến tệp src/lib.rs trong trình soạn thảo văn bản hoặc IDE của bạn.

  2. Triển khai hàm giai thừa : Thêm mã Rust sau để triển khai hàm giai thừa.

     #[no_mangle] pub extern "C" fn factorial(n: u32) -> u32 { if n == 0 { 1 } else { n * factorial(n - 1) } }

    Ở đây, chúng tôi xác định một hàm có tên factorial thừa lấy u32 (số nguyên 32 bit không dấu) làm đối số và trả về u32 . Hàm sử dụng đệ quy để tính giai thừa của số đã cho.

Biên dịch sang WebAssembly

  1. Biên dịch Rust Code : Bây giờ chúng ta đã có hàm giai thừa, hãy biên dịch nó thành mô-đun WebAssembly. Chạy lệnh sau trong terminal của bạn:

     wasm-pack build
  2. Xác minh Build : Sau khi chạy lệnh, bạn sẽ thấy thư mục pkg trong thư mục dự án của mình. Bên trong nó, bạn sẽ tìm thấy mô-đun WebAssembly ( factorial_calculator_bg.wasm ) và liên kết JavaScript được tạo ( factorial_calculator.js ).


Và bạn có nó rồi đấy! Bạn vừa tạo một chương trình Rust để tính giai thừa của một số và biên dịch nó thành mô-đun WebAssembly. Điều này không chỉ thể hiện khả năng của Rust mà còn tạo tiền đề cho việc tích hợp logic này vào một ứng dụng web.


Tích hợp WebAssugging vào ứng dụng web

Bây giờ chúng ta đã có mô-đun WebAssembly để tính giai thừa, hãy tích hợp nó vào một ứng dụng web đơn giản. Chúng tôi sẽ tạo một giao diện HTML cơ bản nơi người dùng có thể nhập một số rồi hiển thị giai thừa của số đó bằng mô-đun WebAssembly do Rust tạo ra.

Thiết lập HTML và JavaScript

  1. Tạo một tệp HTML : Tạo một tệp mới có tên là index.html trong thư mục dự án của bạn và thêm mã HTML sau:

     <!DOCTYPE html> <html> <head> <title>Factorial Calculator</title> </head> <body> <h1>Factorial Calculator</h1> <input type="number" id="numberInput" placeholder="Enter a number"> <button onclick="calculateFactorial()">Calculate</button> <p>Result: <span id="result"></span></p> <script src="./bootstrap.js"></script> </body> </html>

    Ở đây, chúng ta tạo một giao diện đơn giản với trường nhập số, một nút để kích hoạt phép tính và một đoạn văn để hiển thị kết quả.

  2. Tạo một tệp JavaScript : Tạo một tệp mới có tên bootstrap.js và thêm mã JavaScript sau:

     import('./factorial_calculator').then(module => { window.calculateFactorial = () => { const input = document.getElementById('numberInput').value; const result = module.factorial(parseInt(input)); document.getElementById('result').innerText = result; }; }).catch(console.error);

    Trong tập lệnh này, chúng ta nhập động mô-đun WebAssembly và xác định một hàm có tên là calculateFactorial . Hàm này đọc số từ trường đầu vào, gọi hàm giai factorial từ mô-đun WebAssugging của chúng tôi và hiển thị kết quả.

Chạy ứng dụng web

  1. Cài đặt Máy chủ Web : Nếu bạn không có máy chủ web cục bộ, bạn có thể cài đặt một máy chủ bằng npm:

     npm install -g http-server
  2. Chạy Máy chủ Web : Điều hướng đến thư mục dự án của bạn trong terminal và chạy:

     http-server .
  3. Mở ứng dụng web : Mở trình duyệt web của bạn và điều hướng đến http://localhost:8080 . Bạn sẽ thấy ứng dụng web Máy tính giai thừa của mình. Nhập một số, nhấp vào "Tính toán" và giai thừa của số đó sẽ được hiển thị.


Và thế là xong! Bạn đã tích hợp thành công mô-đun WebAssugging do Rust tạo vào một ứng dụng web đơn giản. Điều này thể hiện sức mạnh và tính linh hoạt của việc kết hợp Rust với WebAssembly để tạo ra các ứng dụng web hiệu suất cao.


Phần kết luận

Trong bài viết này, chúng tôi đã khám phá sự kết hợp mạnh mẽ giữa Rust và WebAssugging để phát triển web. Chúng tôi bắt đầu bằng cách thiết lập môi trường phát triển của mình, sau đó chuyển sang tạo chương trình Rust để tính giai thừa của một số. Cuối cùng, chúng tôi đã tích hợp chương trình này vào một ứng dụng web đơn giản.


Sức mạnh tổng hợp giữa Rust và WebAssembly mang đến rất nhiều cơ hội để xây dựng các ứng dụng web hiệu suất cao, an toàn và hiệu quả. Cho dù bạn đang tìm cách tối ưu hóa một dự án hiện có hay bắt đầu một dự án mới, những công nghệ này đều cung cấp các giải pháp mạnh mẽ đáng để xem xét.


Khi công nghệ web tiếp tục phát triển, việc đón đầu xu hướng là rất quan trọng. Rust và WebAssugging không chỉ là xu hướng hiện đại; chúng là những khối xây dựng cho thế hệ ứng dụng web tiếp theo.


Cảm ơn bạn đã tham gia cùng tôi trong hành trình này và tôi khuyến khích bạn tìm hiểu sâu hơn về thế giới của Rust và WebAssembly. Hãy theo dõi các bài viết sắp tới của chúng tôi, nơi chúng tôi sẽ đi sâu vào việc xây dựng các tính năng phức tạp hơn và khám phá các ứng dụng trong thế giới thực.

Tài nguyên bổ sung


Ảnh của SpaceX trên Bapt