Skip to content
1 viewer

rust 1,847,280 · typescript 232,434 · javascript 131,101 · python 19,227 · 6,362 files · digest 755e2ee30522 · built in 2.3 s · crystals off

cre8-app-emulation emulation cargo crate

EmulationApp — console emulation plus streaming, session, and wasm helpers.

crates/cre8-app-emulation · level 12 · 21,687 lines (17,259 code) · 55 files · 1,122 fns (236 tests) · cyclomatic Σ 2,800

14workspace deps
2direct dependents
11transitive dependents
351calls out
1calls in
934call-graph weight
0.0%exact crystals

Neighbourhood

Left: crates that declare this one. Right: crates it declares (dev-dependencies included). Edge width grows with resolved calls.

Declared but never named in this crate's source: cre8-runtime-core (normal).

Files

lowhigh
crates/cre8-app-emulation/src/access.rs · 100 lines · 13 fnsaccess.…crates/cre8-app-emulation/src/achievements.rs · 475 lines · 35 fnsachievements.rscrates/cre8-app-emulation/src/achievements/detector_tests.rs · 159 lines · 10 fnsdetecto…crates/cre8-app-emulation/src/ancestry_routes.rs · 172 lines · 19 fnsancestry_r…crates/cre8-app-emulation/src/app.rs · 2,621 lines · 179 fnsapp.rscrates/cre8-app-emulation/src/app/cartridge_storage_tests.rs · 482 lines · 18 fnscartridge_storage…crates/cre8-app-emulation/src/app/input_tests.rs · 149 lines · 10 fnsinput_t…crates/cre8-app-emulation/src/app/manual_frame_tests.rs · 170 lines · 7 fnsmanual_f…crates/cre8-app-emulation/src/app/shutdown_tests.rs · 268 lines · 10 fnsshutdown_t…crates/cre8-app-emulation/src/app/stream_access.rs · 212 lines · 7 fnsstream_acc…crates/cre8-app-emulation/src/app/stream_access_tests.rs · 153 lines · 8 fnsstream_…crates/cre8-app-emulation/src/browser/adapter.ts · 323 lines · 13 fnsadapter.tscrates/cre8-app-emulation/src/browser/atari-paddle-controls.ts · 56 lines · 9 fnscrates/cre8-app-emulation/src/browser/controller_assignment.ts · 195 lines · 12 fnscontroller…crates/cre8-app-emulation/src/browser/crt-shader.ts · 35 lines · 0 fnscrates/cre8-app-emulation/src/browser/emulation-audio.ts · 85 lines · 5 fnsemulati…crates/cre8-app-emulation/src/browser/emulation-clock.ts · 21 lines · 3 fnscrates/cre8-app-emulation/src/browser/emulation-frame.ts · 472 lines · 29 fnsemulation-frame.tscrates/cre8-app-emulation/src/browser/emulation-view.ts · 274 lines · 21 fnsemulation-…crates/cre8-app-emulation/src/browser/fetch-with-retry.ts · 118 lines · 7 fnsfetch-w…crates/cre8-app-emulation/src/browser/framebuffer.ts · 50 lines · 6 fnscrates/cre8-app-emulation/src/browser/gamepad.ts · 85 lines · 4 fnscrates/cre8-app-emulation/src/browser/keymap.ts · 149 lines · 2 fnskeymap.…crates/cre8-app-emulation/src/browser/platform_buttons.ts · 139 lines · 2 fnsplatform…crates/cre8-app-emulation/src/browser/touch-controls.ts · 60 lines · 4 fnscrates/cre8-app-emulation/src/browser/touch-layout.ts · 65 lines · 1 fnscrates/cre8-app-emulation/src/browser/touch_layout_storage.ts · 146 lines · 15 fnstouch_l…crates/cre8-app-emulation/src/browser/touch_overlay.ts · 23 lines · 0 fnscrates/cre8-app-emulation/src/cartridge_store.rs · 217 lines · 10 fnscartridge_…crates/cre8-app-emulation/src/cartridge_store/tests.rs · 231 lines · 12 fnstests.rscrates/cre8-app-emulation/src/cycle_economy.rs · 234 lines · 23 fnscycle_econo…crates/cre8-app-emulation/src/cycle_economy/receipt_tests.rs · 103 lines · 3 fnsreceipt…crates/cre8-app-emulation/src/input_emission.rs · 243 lines · 18 fnsinput_emis…crates/cre8-app-emulation/src/input_emission/flow_tests.rs · 92 lines · 4 fnsflow_te…crates/cre8-app-emulation/src/lib.rs · 30 lines · 7 fnscrates/cre8-app-emulation/src/llm_driver.rs · 1,004 lines · 88 fnsllm_driver.rscrates/cre8-app-emulation/src/llm_driver/smoke_tests.rs · 180 lines · 7 fnssmoke_test…crates/cre8-app-emulation/src/llm_driver/vision_provider_tests.rs · 188 lines · 21 fnsvision_pro…crates/cre8-app-emulation/src/playthrough_certificate.rs · 329 lines · 28 fnsplaythrough_cer…crates/cre8-app-emulation/src/playthrough_certificate/certificate_tests.rs · 140 lines · 9 fnscertifi…crates/cre8-app-emulation/src/registry.rs · 250 lines · 25 fnsregistry.rscrates/cre8-app-emulation/src/rom_patch.rs · 301 lines · 24 fnsrom_patch.rscrates/cre8-app-emulation/src/session.rs · 1,928 lines · 131 fnssession.rscrates/cre8-app-emulation/src/session/checkpoint_tests.rs · 115 lines · 7 fnscheckp…crates/cre8-app-emulation/src/session/control_tests.rs · 249 lines · 12 fnscontrol_te…crates/cre8-app-emulation/src/session/input_tests.rs · 303 lines · 17 fnsinput_tests.rscrates/cre8-app-emulation/src/session/storage_tests.rs · 466 lines · 22 fnsstorage_tests.rscrates/cre8-app-emulation/src/session_gossip.rs · 270 lines · 19 fnssession_go…crates/cre8-app-emulation/src/streaming.rs · 707 lines · 43 fnsstreaming.rscrates/cre8-app-emulation/src/streaming/buffer.rs · 253 lines · 22 fnsbuffer.rscrates/cre8-app-emulation/src/view_templates.rs · 1,010 lines · 60 fnsview_templates.rscrates/cre8-app-emulation/src/wasm_api.rs · 525 lines · 32 fnswasm_api.rscrates/cre8-app-emulation/src/wasm_api/checkpoint_tests.rs · 102 lines · 6 fnscheckpo…crates/cre8-app-emulation/src/wasm_api/control_tests.rs · 276 lines · 13 fnscontrol_tes…crates/cre8-app-emulation/src/wasm_api/route_tests.rs · 256 lines · 10 fnsroute_test…

File call graph

Resolved calls between this crate's files, callers left of callees. Showing the 48 of 52 files most involved in calls.

18 calls19 calls4 calls4 calls1 calls4 calls16 calls3 calls42 calls4 calls81 calls2 calls1 calls2 calls3 calls13 calls6 calls27 calls37 calls1 calls10 calls3 calls7 calls1 calls1 calls7 calls10 calls11 calls3 calls1 calls3 calls14 calls17 calls34 calls16 calls2 calls3 calls3 calls7 calls22 calls7 calls4 calls1 calls2 calls3 calls2 calls5 calls1 calls3 calls2 calls1 calls2 calls3 calls2 calls2 calls1 calls1 calls2 calls1 calls2 calls1 calls1 calls10 calls1 calls16 calls3 calls6 calls11 calls3 calls18 calls6 calls4 calls6 calls4 calls4 calls16 calls2 calls4 calls1 calls2 calls7 calls1 calls7 calls4 calls22 calls4 calls75 calls7 calls5 calls1 calls23 calls1 calls11 calls1 calls132 calls2 calls1 calls3 calls2 calls3 calls1 calls3 calls1 calls29 calls1 calls1 calls10 calls6 calls14 calls1 calls14 calls1 calls2 calls28 calls5 calls1 calls4 calls115 calls5 calls34 calls10 callssession.rssessioncrates/cre8-app-emulation/src/session.rs · 539 call sites in/outapp.rsappcrates/cre8-app-emulation/src/app.rs · 211 call sites in/outwasm_api.rswasm_apicrates/cre8-app-emulation/src/wasm_api.rs · 168 call sites in/outstorage_tests.rssession::storage_testscrates/cre8-app-emulation/src/session/storage_tests.rs · 141 call sites in/outregistry.rsregistrycrates/cre8-app-emulation/src/registry.rs · 129 call sites in/outcontrol_tests.rswasm_api::control_testscrates/cre8-app-emulation/src/wasm_api/control_tests.rs · 125 call sites in/outcartridge_storage_tests.rsapp::cartridge_storage_testscrates/cre8-app-emulation/src/app/cartridge_storage_tests.rs · 107 call sites in/outcontrol_tests.rssession::control_testscrates/cre8-app-emulation/src/session/control_tests.rs · 91 call sites in/outshutdown_tests.rsapp::shutdown_testscrates/cre8-app-emulation/src/app/shutdown_tests.rs · 69 call sites in/outstream_access.rsapp::stream_accesscrates/cre8-app-emulation/src/app/stream_access.rs · 57 call sites in/outstreaming.rsstreamingcrates/cre8-app-emulation/src/streaming.rs · 55 call sites in/outroute_tests.rswasm_api::route_testscrates/cre8-app-emulation/src/wasm_api/route_tests.rs · 54 call sites in/outllm_driver.rsllm_drivercrates/cre8-app-emulation/src/llm_driver.rs · 51 call sites in/outbuffer.rsstreaming::buffercrates/cre8-app-emulation/src/streaming/buffer.rs · 50 call sites in/outcheckpoint_tests.rssession::checkpoint_testscrates/cre8-app-emulation/src/session/checkpoint_tests.rs · 47 call sites in/outaccess.rsaccesscrates/cre8-app-emulation/src/access.rs · 40 call sites in/outstream_access_tests.rsapp::stream_access_testscrates/cre8-app-emulation/src/app/stream_access_tests.rs · 39 call sites in/outinput_tests.rssession::input_testscrates/cre8-app-emulation/src/session/input_tests.rs · 39 call sites in/outcheckpoint_tests.rswasm_api::checkpoint_testscrates/cre8-app-emulation/src/wasm_api/checkpoint_tests.rs · 36 call sites in/outview_templates.rsview_templatescrates/cre8-app-emulation/src/view_templates.rs · 33 call sites in/outmanual_frame_tests.rsapp::manual_frame_testscrates/cre8-app-emulation/src/app/manual_frame_tests.rs · 31 call sites in/outsmoke_tests.rsllm_driver::smoke_testscrates/cre8-app-emulation/src/llm_driver/smoke_tests.rs · 28 call sites in/outplaythrough_certificate.rsplaythrough_certificatecrates/cre8-app-emulation/src/playthrough_certificate.rs · 27 call sites in/outinput_tests.rsapp::input_testscrates/cre8-app-emulation/src/app/input_tests.rs · 23 call sites in/outachievements.rsachievementscrates/cre8-app-emulation/src/achievements.rs · 22 call sites in/outcycle_economy.rscycle_economycrates/cre8-app-emulation/src/cycle_economy.rs · 21 call sites in/outrom_patch.rsrom_patchcrates/cre8-app-emulation/src/rom_patch.rs · 21 call sites in/outdetector_tests.rsachievements::detector_testscrates/cre8-app-emulation/src/achievements/detector_tests.rs · 18 call sites in/outcartridge_store.rscartridge_storecrates/cre8-app-emulation/src/cartridge_store.rs · 18 call sites in/outemulation-view.tssrc::browser::emulation-viewcrates/cre8-app-emulation/src/browser/emulation-view.ts · 17 call sites in/outinput_emission.rsinput_emissioncrates/cre8-app-emulation/src/input_emission.rs · 17 call sites in/outtests.rscartridge_store::testscrates/cre8-app-emulation/src/cartridge_store/tests.rs · 16 call sites in/outcertificate_tests.rsplaythrough_certificate::certif…crates/cre8-app-emulation/src/playthrough_certificate/certificate_tests.rs · 16 call sites in/outtouch-controls.tssrc::browser::touch-controlscrates/cre8-app-emulation/src/browser/touch-controls.ts · 14 call sites in/outflow_tests.rsinput_emission::flow_testscrates/cre8-app-emulation/src/input_emission/flow_tests.rs · 11 call sites in/outatari-paddle-controls.tssrc::browser::atari-paddle-cont…crates/cre8-app-emulation/src/browser/atari-paddle-controls.ts · 10 call sites in/outemulation-frame.tssrc::browser::emulation-framecrates/cre8-app-emulation/src/browser/emulation-frame.ts · 10 call sites in/outtouch_layout_storage.tssrc::browser::touch_layout_stor…crates/cre8-app-emulation/src/browser/touch_layout_storage.ts · 10 call sites in/outreceipt_tests.rscycle_economy::receipt_testscrates/cre8-app-emulation/src/cycle_economy/receipt_tests.rs · 9 call sites in/outvision_provider_tests.rsllm_driver::vision_provider_tes…crates/cre8-app-emulation/src/llm_driver/vision_provider_tests.rs · 6 call sites in/outancestry_routes.rsancestry_routescrates/cre8-app-emulation/src/ancestry_routes.rs · 5 call sites in/outadapter.tssrc::browser::adaptercrates/cre8-app-emulation/src/browser/adapter.ts · 5 call sites in/outemulation-audio.tssrc::browser::emulation-audiocrates/cre8-app-emulation/src/browser/emulation-audio.ts · 5 call sites in/outsession_gossip.rssession_gossipcrates/cre8-app-emulation/src/session_gossip.rs · 5 call sites in/outfetch-with-retry.tssrc::browser::fetch-with-retrycrates/cre8-app-emulation/src/browser/fetch-with-retry.ts · 4 call sites in/outplatform_buttons.tssrc::browser::platform_buttonscrates/cre8-app-emulation/src/browser/platform_buttons.ts · 4 call sites in/outcontroller_assignment.tssrc::browser::controller_assign…crates/cre8-app-emulation/src/browser/controller_assignment.ts · 3 call sites in/outframebuffer.tssrc::browser::framebuffercrates/cre8-app-emulation/src/browser/framebuffer.ts · 2 call sites in/out

Heaviest functions

By call-graph weight (PageRank; 1.0 is the average function). 1,122 functions in all.

functionkindlinescyclomaticcallerscalleesweightcrystal
locksrc/registry.rs:201fn312107.9
audiosrc/streaming/buffer.rs:89fn279316.1
u32_atsrc/streaming/buffer.rs:80fn31105.7
livesrc/registry.rs:205fn312115.5
lock_registrysrc/session_gossip.rs:118fn31505.1
json_u64src/app.rs:2103fn1451505
EmulationSession::stopsrc/session.rs:2041method1933024.9
bad_requestsrc/app.rs:918fn311724.6
EmulationSession::allow_guest_mutationsrc/session.rs:904method72904.6
resolvesrc/registry.rs:215fn73914.4
CartridgeStorageBinding::is_durablesrc/session.rs:237method101404.2
require_wasm_ownersrc/wasm_api.rs:37fn1031814.2
rom_hashsrc/cycle_economy.rs:243fn81804.1
wasm_session_idsrc/wasm_api.rs:32fn31214.1
EmulationSession::save_full_state_bytessrc/session.rs:1019method1134004
EmulationSession::meta_contextsrc/session.rs:1847method101503.9
flush_bound_cartridge_storagesrc/session.rs:297fn6013223.7
refusalsrc/access.rs:109fn511233.6
Receiver::recv_timeoutsrc/streaming/buffer.rs:36method1742513.5
url_componentsrc/view_templates.rs:1024fn114503.4
encode_hexsrc/rom_patch.rs:270fn31303.4
flush_owned_cartridge_storagesrc/session.rs:358fn81713.2
gameboy_cartridgesrc/session/checkpoint_tests.rs:4fn1622003.2
EmulationSession::hot_swap_history_depthsrc/session.rs:1060method31703.1
EmulationSession::is_retiredsrc/session.rs:2061method311703
errorsrc/ancestry_routes.rs:68fn31822.9
sha256_hexsrc/rom_patch.rs:266fn31712.9
mailboxsrc/streaming/buffer.rs:16fn41502.9
EmulationSession::preparesrc/session.rs:687method332572.8
EmulationSession::current_pcsrc/session.rs:1828method621302.8
Payload::newsrc/streaming/buffer.rs:118method123312.8
EmulationSession::frame_slotsrc/session.rs:2003method31902.7
Payload::mergesrc/streaming/buffer.rs:131method275912.7
currentsrc/browser/emulation-frame.ts:494nested fn13602.7
record_stopsrc/session_gossip.rs:160fn103222.6
EmulationSession::pause_with_priorsrc/session.rs:1796method122312.5
recordersrc/input_emission.rs:130fn51202.5
EmulationSession::load_state_bytessrc/session.rs:996method112422.4
EmulationSession::load_full_state_bytessrc/session.rs:1034method2131612.4
EmulationSession::read_memory_bytessrc/session.rs:1070method932302.3

Outside the workspace

anyhow base64 cre8-vm cre8virtual_app serde serde_json sha2 tungstenite wasm-bindgen