build_extra/rust/BUILD.gn. When adding a new Rust crate in
third_party/, we need to add an entry into this file. For example, this is the rule for building a crate called
rust_crateGN template is defined in
readFileis defined in
read_file.ts, while its unit tests are in
denoMainis defined in this file, which is invoked by Rust backend as the entry for bootstrapping TypeScript code.
globals.ts: All globals that do not need imports are attached here.
denonamespace APIs are exported here.
libdeno.ts: Type definition for customized V8 API exposed to TypeScript.
unit_tests.ts: All unit tests are imported here and executed.
compiler.ts: Customized TypeScript compilation logic for Deno.
api.cc: libdeno APIs that are exposed and callable from the Rust side
binding.cc: code that handles interaction with V8 and where V8 C++ bindings are added. These APIs are exposed Rust and TypeScript side both.
snapshot_creator.cc: logic for creating V8 snapshot during build.
libdeno.rs: exposes libdeno APIs from
isolate.rs: extracts V8 isolate (an isolated instance of V8 engine) and event loop creation logic using libdeno APIs
deno_dir.rs: contains logic for Deno module file resolution and caching
ops.rs: where each Deno Op (operation) is handled. This is where the actual file system and network accesses are done.
main.rs: contains main function for Rust. This is the ACTUAL entry point when you run the Deno binary.
msg.fbs: FlatBuffers definition file for message structure, used for message passing. Modify this file when you want to add or modify a message structure.
*.tsfiles define the code to run for each test.
*.testdefined how should this test be executed. Usually,
*.outdefines the expected output of a test (the actual name is specified in
build.py: Builds Deno
setup.py: Setup and necessary code fetching
format.py: Code formatting
lint.py: Code linting
sync_third_party.py: Sync third_party code after user modifies
cargo buildlogic. Internally invokes