- C++ core(native)
- JS core
V8 là một javascrpit engine dùng để biên dịch ra mã thực thi trên vi xử lý. Do được viết bằng C++ nên nó có thể được dùng độc lập hoặc được nhúng vào các chương trình viết bằng C++ khác.
Mã nguồn của V8 được dùng trong node có thể xem trong thư mục deps/v8
Có thể thử biên dịch một ví dụ về js shell
dùng lệnh shell --print_code
để xem code được biên dịch ra mã thực thi
thử thêm một chức năng(lệnh) greeting vào shell
Ở trên đã thấy cách dùng V8, thì việc thực thi code js giống như ta nhập vào shell, nó sẽ được biên dịch ra mã máy và chạy. Tuy nhiên không phải thư viện nào cũng cần binding JS với C++ mà chỉ thuần túy chứa các hàm.
2 thành phần quan trọng nhất
- quản lý các kết nối IO bất đồng bộ
- threadpool + event-loop