Tin tức

Cloudflare Workers RPC Giờ Đây Kết Nối Python và JavaScript

Workers RPC của Cloudflare giờ hoạt động trên cả Python và JavaScript, cho phép nhà phát triển gọi phương thức và chia sẻ đối tượng giữa các ngôn ngữ mà không cần schema, phụ thuộc hay cấu hình thêm.

August 3, 2026· 2 min read· Nguồn: The Cloudflare Blog
Cloudflare Workers RPC Giờ Đây Kết Nối Python và JavaScript

Cloudflare đã mở rộng hệ thống Workers RPC để hoạt động trên cả Python và JavaScript, loại bỏ rào cản thường gặp trong giao tiếp đa ngôn ngữ. Trước đây, Workers RPC chỉ hỗ trợ JavaScript, được xây dựng trên Cap'n Proto. Giờ đây, một Worker Python có thể gọi phương thức trên Worker JavaScript và ngược lại, với việc chuyển đổi kiểu dữ liệu được xử lý tự động.

Yếu tố then chốt là Foreign Function Interface (FFI) của Pyodide, giúp dịch chuyển giữa các kiểu dữ liệu Python và JavaScript. Đối với các kiểu chuẩn như int, float, bool, dict và list, việc ánh xạ khá đơn giản. Với các đối tượng tùy chỉnh, Pyodide tạo ra các proxy để chuyển tiếp lời gọi qua ranh giới. Cloudflare đã thêm một lớp chuyển đổi tùy chỉnh thông qua gói Python workers-runtime-sdk để xử lý các đối tượng Web API như RequestResponse, vốn không có tương đương trực tiếp trong Python.

Điều này có nghĩa là bạn có thể viết một Worker TypeScript với phương thức như add(a, b) và gọi nó từ Python bằng await rpc.add(42, 144)—không cần schema protobuf, không cần API tùy chỉnh, không cần phụ thuộc. Chỉ cần Service bindings để kết nối hai bên.

Hệ thống hỗ trợ truyền các kiểu Structured Cloneable, hàm, và thậm chí cả ngoại lệ qua ranh giới. Các lệnh gọi RPC thường chạy trong cùng một luồng, vì vậy chi phí hiệu suất gần như bằng không. Việc triển khai là mã nguồn mở trong workerdworkers-runtime-sdk.

Một trường hợp sử dụng thực tế: sử dụng các gói Python từ JavaScript. Ví dụ, bạn có thể expose một phương thức tô màu cú pháp Pygments từ một Worker Python và gọi nó từ JavaScript, tận dụng được ưu điểm của cả hai hệ sinh thái mà không cần xây dựng một microservice riêng.

Đây là một bước tiến đáng kể hướng tới phát triển đa ngôn ngữ trên edge, nhưng không phải không có đánh đổi. Lớp chuyển đổi kiểu dữ liệu thêm vào sự phức tạp, và các nhà phát triển cần nhận thức rõ cách các kiểu dữ liệu của họ ánh xạ giữa các ngôn ngữ. Tuy nhiên, đối với các đội ngũ đã đầu tư vào Cloudflare Workers, điều này loại bỏ một rào cản lớn trong việc kết hợp ngôn ngữ.

Giờ bạn có thể gọi các phương thức được định nghĩa trong một Worker Python từ một Worker JavaScript và ngược lại. Tất cả đều hoạt động.
Ban biên tập Manul X