Frontend·Hacker News·0 lượt xem

Hiển thị HN: QuickBEAM – chạy JavaScript dưới dạng quy trình Erlang/OTP được giám sát

Show HN: QuickBEAM – run JavaScript as supervised Erlang/OTP processes

AI Summary

QuickBEAM là một giải pháp thú vị cho phép nhúng JavaScript runtime vào trong Erlang/OTP VM. Điều này đồng nghĩa với việc code JavaScript của bạn có thể chạy dưới dạng các *process* được giám sát, có khả năng tự khởi động lại. Với các developer làm full-stack, sự tích hợp này cực kỳ quan trọng. Nó mở ra khả năng tương tác liền mạch giữa JavaScript và Elixir/Erlang, bao gồm cả việc gửi nhận *message*, tạo ra các *process* mới, và thậm chí truy cập trực tiếp vào các *OTP primitives*. Bạn nên cân nhắc sử dụng QuickBEAM cho các trường hợp như Server-Side Rendering (SSR), chạy code do người dùng cung cấp trong môi trường *sandbox*, quản lý trạng thái cho từng *connection* riêng lẻ, hay đơn giản là muốn chạy JavaScript ở phía backend. QuickBEAM còn hỗ trợ *sandboxing*, các API theo kiểu trình duyệt (*browser-style APIs*), cùng với tích hợp sẵn cho TypeScript và npm, giúp trải nghiệm phát triển full-stack tập trung vào Elixir/Erlang trở nên gắn kết và hiệu quả hơn.

QuickBEAM là JavaScript runtime được nhúng bên trong máy ảo Erlang/OTP.

QuickBEAM là JavaScript runtime được nhúng bên trong máy ảo Erlang/OTP.

Nếu bạn đang xây dựng một ứng dụng đầy đủ, thì JavaScript có xu hướng bị rò rỉ ở bất cứ kiểu nào — giao diện người dùng, SSR hoặc mã của bên thứ ba.

QuickBEAM chạy JavaScript đó bên trong cây giám sát OTP.

Mỗi thời gian chạy là một quy trình có `Beam` toàn cục có thể: - gọi mã Elixir - gửi/nhận tin nhắn - sinh sản và giám sát quá trình - kiểm tra trạng thái thời gian chạy/hệ thống

Nó cũng cung cấp các API kiểu trình duyệt được hỗ trợ bởi OTP/gốc gốc (tìm nạp, WebSocket, Worker, BroadcastChannel, localStorage, DOM gốc, v.v.).

Điều này khiến nó có thể sử dụng được cho: - SSR - mã người dùng hộp cát - trạng thái mỗi kết nối - JS phụ trợ với OTP interop trực tiếp

Các bit đáng chú ý:

- Thời gian chạy JS được giám sát và có thể khởi động lại - hộp cát với giới hạn bộ nhớ/giảm và kiểm soát API - DOM gốc mà Erlang có thể đọc trực tiếp (không cần bước kết xuất chuỗi) - không có ranh giới JSON giữa JS và Erlang - TypeScript tích hợp, hỗ trợ npm và các tiện ích bổ sung gốc

QuickBEAM là một phần của Elixir Volt — chuỗi công cụ giao diện người dùng đầy đủ được xây dựng trên Erlang/OTP không có Node.js.

Vẫn còn sớm, hoan nghênh phản hồi.

Tác giả: dannote

#discussion