- Runtime JavaScript tối giản, hỗ trợ cả di động lẫn máy tính để bàn, có thể chạy trên nhiều loại phần cứng khác nhau
- Tập trung vào tính mô-đun, tính đa dụng, độ nhẹ với kiến trúc bất đồng bộ dựa trên sự kiện
- Tối ưu cho phát triển ứng dụng P2P và ứng dụng đa nền tảng
Tính năng chính
-
Cấu trúc mô-đun hoàn toàn
- Không có thư viện chuẩn → mô hình mô-đun chỉ lấy những gì cần dùng
- Ví dụ:
bare-fs, bare-http1, bare-crypto, bare-zlib, bare-stream v.v.
- Chỉ cài đặt và sử dụng những chức năng cần thiết, giúp xây dựng môi trường runtime gọn nhẹ
-
Tương thích ESM & CommonJS
- Có thể dùng cả
require() và import
- Tương tác linh hoạt ngay cả trong môi trường trộn lẫn hai hệ thống mô-đun
-
Hỗ trợ tối ưu cho di động
- Có thể nhúng runtime JavaScript vào thiết bị di động bằng Bare Kit
- Dễ dàng tích hợp vào Android và iOS thông qua
react-native-bare-kit
- Hỗ trợ giao tiếp IPC, có thể chạy Bare worklet trong ứng dụng React Native
-
Hỗ trợ addon native
- Có thể viết addon native dựa trên
libjs và libuv
- Hỗ trợ nhiều engine JavaScript khác nhau (V8, JavaScriptCore, QuickJS)
- Có thể sử dụng phần lớn các symbol của N-API
Triết lý của Bare: đơn giản chính là sức mạnh
- Bare là một runtime nhỏ gọn và mô-đun hóa, có thể chạy trên cả máy tính để bàn lẫn di động mà không suy giảm hiệu năng
- Cung cấp kiến trúc bất đồng bộ dựa trên sự kiện như Node.js, nhưng được thiết kế với khả năng nhúng và tương thích giữa các thiết bị là trọng tâm
Có thể xây gì với Bare
-
Ứng dụng P2P
- Dựa trên stack Holepunch, có thể nhanh chóng xây dựng streaming dữ liệu thời gian thực, chia sẻ tệp, ứng dụng giao tiếp v.v.
- Có thể tạo các ứng dụng giao tiếp và chia sẻ không máy chủ như Keet, Pear
- Hỗ trợ giao tiếp thời gian thực hiệu năng cao ngay cả không cần WebRTC
- Nhờ cấu trúc nhẹ và mô-đun hóa, vừa đảm bảo khả năng mở rộng lẫn hiệu quả
-
Mạng phi tập trung
- Hiện thực hóa mức độ phân tán tương đương blockchain với cấu trúc không máy chủ
- Phù hợp với nhiều loại ứng dụng phân tán như DeFi, chia sẻ dữ liệu, mạng riêng tư
-
Chia sẻ dữ liệu hiệu quả cao
- Phù hợp với thư viện media, game thời gian thực, streaming video v.v.
- Hỗ trợ đồng bộ hóa và streaming nhanh, ổn định
-
Ứng dụng đa nền tảng tự vận hành
- Mô-đun viết một lần có thể tái sử dụng cho cả di động và máy tính để bàn
- Ví dụ: push notification, mã hóa lại video, tác vụ mã hóa vẫn hoạt động mượt mà ngay cả trong môi trường cấu hình thấp
Hiệu năng và khả năng mở rộng
- Hỗ trợ nhiều JS engine như V8, JavaScriptCore, QuickJS
- Duy trì khả năng tương thích với các runtime hiện có thông qua tích hợp LibJS
- Áp dụng fastcall để đạt hiệu năng ở mức native
- Trưởng nhóm kỹ thuật Kasper Isager: "Bare được thiết kế để có thể chạy ở bất cứ đâu — từ máy tính, điện thoại cho đến hệ thống nhúng"
Pear + Bare = stack phát triển P2P hoàn chỉnh
- Pear là nền tảng tích hợp runtime P2P cùng các công cụ phát triển và triển khai
- Ứng dụng dựa trên Bare hoạt động trên Pear Runtime của Holepunch, cung cấp môi trường P2P hoàn chỉnh có thể vận hành không cần máy chủ
- Không tốn chi phí máy chủ, đảm bảo đầy đủ quyền riêng tư dữ liệu
- Pear được cập nhật tự động và cũng bao gồm luôn runtime Bare
- Sự kết hợp này mang lại một mô hình container nhẹ hoàn toàn mới
Kết luận
- Bare là một runtime đột phá hiện thực hóa đúng nghĩa tính đa dụng và hiệu quả của JavaScript
- Ngay trong nội bộ đội ngũ Holepunch cũng đang triển khai đồng thời ứng dụng di động + máy tính để bàn từ cùng một đoạn mã
- Hiện thực hóa đúng nghĩa "Write Once, Run Anywhere"
- Giờ đây có thể chạy ứng dụng P2P hoàn chỉnh không máy chủ trên bất kỳ thiết bị nào chỉ với một codebase
Chưa có bình luận nào.