Deno原理详解,让我们一起从源码分析开始
Node之父ry:在“Node中的设计错误”演讲中表示: 不允许将任意本地函数绑定至 V8 当中。 所有系统调用都将通过消息传递完成(protobuf 序列化)。 两项原生函数:send 与 recv。 这既简化了设计流程,又使得系统更易于审计。 这几点很大程度上体现出了node和deno在设计本质上的区别,同时这几点体现了deno的安全性(利用 JavaScript 本身即为安全沙箱这一事实) V8worker2是Go和V8连接的桥梁 允许从GO程序执行JavaScript 只允许GO和V8之间的消息传递(传统:暴露C++函数作为函数在JavaScript。) 维护一个安全的JS沙箱 JS中只允许绑定3个函数:send(), recv(), print() 从图中可以清晰的看出,V8worker2是v8和Go之间实现调用的核心组件 可以看出V8worker2 是通过binding C++ 模块进行绑定V8,bingding暴露了基础操作方法:v8_init() 、worker_load()、worker_send_bytes()、worker_dispose()...提供给GO 进行调用 //binding.h const char* worker_version(); void worker_set_flags(int* argc, char** argv); void v8