swiftwasm / swiftwasm/JavaScriptKit
Plugin infrastructure
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Swift
- Star
- 986
- Fork
- 76
- Merge trung bình
- 21 giờ 11 phút
- Pull request đã merge (30 ngày)
- 4
Mô tả
Currently, JavaScript-based features must be directly implemented in JavaScriptKit to be able to access important features like the heap and the JSValue parsing/serializing routines. This means that less-common things like TypedArray or potential Combine-Promise integration (see #62) would have to increase the bundle size for everyone. One solution to this would be defining some sort of public JS-side API that allows providing custom functions to the WASM runtime. As long as we encourage users of this API to prefix their methods there should be no collision issues.
It would be nice to restructure JavaScriptKit itself to make use of the plugin API too:
swjs_core:releaseswjs_object:get_prop,set_prop,get_subscript,set_subscript,instanceofswjs_string:decode,encode,loadswjs_function:call,apply,call_new,createswjs_typedarray:create
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách lập bản đồ cầu nối JavaScript/WASM hiện có và các entry point được liệt kê: swjs_core, swjs_object, swjs_string, swjs_function và swjs_typedarray. Xác định ranh giới của public plugin API và cách các tính năng JavaScriptKit được liệt kê có thể sử dụng nó; được xem là hoàn tất khi thiết kế đã được chốt và các hàm được đề xuất có thể được migrate mà không thêm chức năng không được sử dụng vào mọi bundle.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, swift, wasm
- Lĩnh vực
- api, tooling
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100