Skip to main content

Crate emscripten_rs_sys

Crate emscripten_rs_sys 

Source
Expand description

§emscripten-rs-sys

Crates.io Docs.rs License

Low-level Rust FFI bindings to the Emscripten C API, generated using bindgen.

This crate provides raw, unsafe bindings to the C API of Emscripten, allowing Rust code to interface directly with the Emscripten runtime.

⚠️ The only supported target is wasm32-unknown-emscripten.

§Features

The raw FFI bindings and the em_js (js!, inline_js!) and em_asm (js_asm!) macros are available by default. The default configuration requires no experimental compiler feature attributes in the calling crate.

Using em_js (js! or inline_js!) requires -Clink-dead-code (equivalently, -C link-dead-code) unless you enable force_export. See Linker setup for the Cargo configuration.

emscripten_rs_sys = "0.4.0"

The optional force_export feature uses WebAssembly global assembly to export em_js script symbols, removing the need for -C link-dead-code. It requires nightly Rust:

emscripten_rs_sys = { version = "0.4.0", features = ["force_export"] }

Because the assembly is emitted by the macros, each crate that calls js! or inline_js! with this feature enabled must add this to its crate root:

#![feature(asm_experimental_arch)]

When using SignatureBuilder directly, specify its buffer capacity (the number of arguments plus one for the null terminator), for example SignatureBuilder::<3>::new::<i32>().add_param(&x).add_param(&y).finish(). The js_asm! macro calculates this capacity automatically.

§Prerequisites

You must have the Emscripten SDK (emsdk) installed and activated on your system before building.

Follow the official installation instructions here: Emscripten SDK Installation Guide

After installing, ensure emcc is on your PATH for linking and optional binding generation. Both macro modules emit their JavaScript strings directly from Rust; macro expansion does not compile C or generate native archives.

The project currently selects nightly for the Wasm link_section fix. Stable Rust 1.98 predates that fix and cannot link js_asm! correctly. The fix itself needs no feature attribute; force_export separately requires the nightly assembly feature described above.

§Linker setup

Without force_export, using em_js (js! or inline_js!) requires the Rust compiler flag -C link-dead-code. This preserves the exported __em_js__* data symbols that Emscripten reads to discover the JavaScript functions. Add it to your application’s .cargo/config.toml (append it to any existing rustflags):

[target.wasm32-unknown-emscripten]
rustflags = ["-C", "link-dead-code"]

This repository already enables the flag for its tests. It retains otherwise unused code, so it can increase the output size. When enabling force_export, you can remove this flag while retaining any other linker settings you need.

Some APIs of Emscripten only work at runtime if they are explicitly enabled at link time.

See the settings Reference for all -s options.

Ways to set linker settings:

  • With the RUSTFLAGS environment variable: RUSTFLAGS='-C link-args=-sALLOW_MEMORY_GROWTH=1'
  • In the build script: println!("cargo:rustc-link-arg=-sALLOW_MEMORY_GROWTH=1");
  • In the .cargo/config.toml with the rustflags field.

§Highlights

  • The complete C API is covered.
  • EM_JS support for inline JS functions.

§Example

Define Javascript function in Rust:

use emscripten_rs_sys::em_js::js;
use std::ffi::c_int;

js! {
    fn compute_sum(n: c_int) -> c_int
    {
        let sum = 0;
        for(let i=1; i<n; i++)
        {
            sum += i;
        }
        return sum;
    }
}

fn test_sum() {
    assert_eq!(unsafe { compute_sum(100) }, 4950)
}

Conveniently call Javascript from Rust, with parameter type inference:

use emscripten_rs_sys::em_asm::*;

fn js_asm() {
    let a = 2;
    let b = 3;
    let result = js_asm! { 
        |a,b| -> i32 { return a+b*b; } 
    };
    assert_eq!(result, 2+3*3);
}

Modules§

em_asm
em_js

Structs§

AudioParamFrame
AudioSampleFrame
EmscriptenAudioWorkletNodeCreateOptions
EmscriptenBatteryEvent
EmscriptenDeviceMotionEvent
EmscriptenDeviceOrientationEvent
EmscriptenFocusEvent
EmscriptenFullscreenChangeEvent
EmscriptenFullscreenStrategy
EmscriptenGamepadEvent
EmscriptenKeyboardEvent
EmscriptenMouseEvent
EmscriptenOrientationChangeEvent
EmscriptenPointerlockChangeEvent
EmscriptenTouchEvent
EmscriptenTouchPoint
EmscriptenUiEvent
EmscriptenVisibilityChangeEvent
EmscriptenWebAudioCreateAttributes
EmscriptenWebGLContextAttributes
EmscriptenWebSocketCloseEvent
EmscriptenWebSocketCreateAttributes
EmscriptenWebSocketErrorEvent
EmscriptenWebSocketMessageEvent
EmscriptenWebSocketOpenEvent
EmscriptenWheelEvent
WebAudioParamDescriptor
WebAudioWorkletProcessorCreateOptions
_IO_FILE
__em_asm_sig
__em_asm_sig_builder
__em_asm_type_tuple
_em_promise
asyncify_data_s
em_proxying_ctx
em_proxying_queue
em_queued_call
em_settled_result_t
emscripten__EM_VAL
emscripten_fetch_attr_t
emscripten_fetch_t
emscripten_fiber_s
emscripten_internal__EM_DESTRUCTORS
emscripten_internal__EM_INVOKER
pthread_attr_t

Constants§

DOM_VK_WIN_OEM_ATTN
DOM_VK_WIN_OEM_AUTO
DOM_VK_WIN_OEM_BACKTAB
DOM_VK_WIN_OEM_CLEAR
DOM_VK_WIN_OEM_COPY
DOM_VK_WIN_OEM_CUSEL
DOM_VK_WIN_OEM_ENLW
DOM_VK_WIN_OEM_FINISH
DOM_VK_WIN_OEM_FJ_JISHO
DOM_VK_WIN_OEM_FJ_LOYA
DOM_VK_WIN_OEM_FJ_MASSHOU
DOM_VK_WIN_OEM_FJ_ROYA
DOM_VK_WIN_OEM_FJ_TOUROKU
DOM_VK_WIN_OEM_JUMP
DOM_VK_WIN_OEM_PA1
DOM_VK_WIN_OEM_PA2
DOM_VK_WIN_OEM_PA3
DOM_VK_WIN_OEM_RESET
DOM_VK_WIN_OEM_WSCTRL
EMSCRIPTEN_AUDIO_MAIN_THREAD
EMSCRIPTEN_DEVICE_MOTION_EVENT_SUPPORTS_ACCELERATION
EMSCRIPTEN_DEVICE_MOTION_EVENT_SUPPORTS_ACCELERATION_INCLUDING_GRAVITY
EMSCRIPTEN_DEVICE_MOTION_EVENT_SUPPORTS_ROTATION_RATE
EMSCRIPTEN_EVENT_BATTERYCHARGINGCHANGE
EMSCRIPTEN_EVENT_BATTERYLEVELCHANGE
EMSCRIPTEN_EVENT_BEFOREUNLOAD
EMSCRIPTEN_EVENT_BLUR
EMSCRIPTEN_EVENT_CANVASRESIZED
EMSCRIPTEN_EVENT_CLICK
EMSCRIPTEN_EVENT_CONTEXTMENU
EMSCRIPTEN_EVENT_DBLCLICK
EMSCRIPTEN_EVENT_DEVICEMOTION
EMSCRIPTEN_EVENT_DEVICEORIENTATION
EMSCRIPTEN_EVENT_FOCUS
EMSCRIPTEN_EVENT_FOCUSIN
EMSCRIPTEN_EVENT_FOCUSOUT
EMSCRIPTEN_EVENT_FULLSCREENCHANGE
EMSCRIPTEN_EVENT_GAMEPADCONNECTED
EMSCRIPTEN_EVENT_GAMEPADDISCONNECTED
EMSCRIPTEN_EVENT_KEYDOWN
EMSCRIPTEN_EVENT_KEYPRESS
EMSCRIPTEN_EVENT_KEYUP
EMSCRIPTEN_EVENT_MOUSEDOWN
EMSCRIPTEN_EVENT_MOUSEENTER
EMSCRIPTEN_EVENT_MOUSELEAVE
EMSCRIPTEN_EVENT_MOUSEMOVE
EMSCRIPTEN_EVENT_MOUSEOUT
EMSCRIPTEN_EVENT_MOUSEOVER
EMSCRIPTEN_EVENT_MOUSEUP
EMSCRIPTEN_EVENT_ORIENTATIONCHANGE
EMSCRIPTEN_EVENT_POINTERLOCKCHANGE
EMSCRIPTEN_EVENT_POINTERLOCKERROR
EMSCRIPTEN_EVENT_RESIZE
EMSCRIPTEN_EVENT_SCROLL
EMSCRIPTEN_EVENT_TARGET_INVALID
EMSCRIPTEN_EVENT_TOUCHCANCEL
EMSCRIPTEN_EVENT_TOUCHEND
EMSCRIPTEN_EVENT_TOUCHMOVE
EMSCRIPTEN_EVENT_TOUCHSTART
EMSCRIPTEN_EVENT_VISIBILITYCHANGE
EMSCRIPTEN_EVENT_WEBGLCONTEXTLOST
EMSCRIPTEN_EVENT_WEBGLCONTEXTRESTORED
EMSCRIPTEN_EVENT_WHEEL
EMSCRIPTEN_FETCH_APPEND
EMSCRIPTEN_FETCH_LOAD_TO_MEMORY
EMSCRIPTEN_FETCH_NO_DOWNLOAD
EMSCRIPTEN_FETCH_PERSIST_FILE
EMSCRIPTEN_FETCH_REPLACE
EMSCRIPTEN_FETCH_STREAM_DATA
EMSCRIPTEN_FETCH_SYNCHRONOUS
EMSCRIPTEN_FETCH_WAITABLE
EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_HIDEF
EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE
EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_STDDEF
EMSCRIPTEN_FULLSCREEN_FILTERING_BILINEAR
EMSCRIPTEN_FULLSCREEN_FILTERING_DEFAULT
EMSCRIPTEN_FULLSCREEN_FILTERING_NEAREST
EMSCRIPTEN_FULLSCREEN_SCALE_ASPECT
EMSCRIPTEN_FULLSCREEN_SCALE_CENTER
EMSCRIPTEN_FULLSCREEN_SCALE_DEFAULT
EMSCRIPTEN_FULLSCREEN_SCALE_STRETCH
EMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES
EMSCRIPTEN_LOCK_T_STATIC_INITIALIZER
EMSCRIPTEN_ORIENTATION_LANDSCAPE_PRIMARY
EMSCRIPTEN_ORIENTATION_LANDSCAPE_SECONDARY
EMSCRIPTEN_ORIENTATION_PORTRAIT_PRIMARY
EMSCRIPTEN_ORIENTATION_PORTRAIT_SECONDARY
EMSCRIPTEN_ORIENTATION_UNSUPPORTED
EMSCRIPTEN_PAGE_SIZE
EMSCRIPTEN_RESULT_DEFERRED
EMSCRIPTEN_RESULT_FAILED
EMSCRIPTEN_RESULT_FAILED_NOT_DEFERRED
EMSCRIPTEN_RESULT_INVALID_PARAM
EMSCRIPTEN_RESULT_INVALID_TARGET
EMSCRIPTEN_RESULT_NOT_SUPPORTED
EMSCRIPTEN_RESULT_NO_DATA
EMSCRIPTEN_RESULT_SUCCESS
EMSCRIPTEN_RESULT_TIMED_OUT
EMSCRIPTEN_RESULT_UNKNOWN_TARGET
EMSCRIPTEN_VISIBILITY_HIDDEN
EMSCRIPTEN_VISIBILITY_PRERENDER
EMSCRIPTEN_VISIBILITY_UNLOADED
EMSCRIPTEN_VISIBILITY_VISIBLE
EMSCRIPTEN_WASM_WORKER_ID_PARENT
EMSCRIPTEN_WEBGL_CONTEXT_PROXY_ALWAYS
EMSCRIPTEN_WEBGL_CONTEXT_PROXY_DISALLOW
EMSCRIPTEN_WEBGL_CONTEXT_PROXY_FALLBACK
EMSCRIPTEN_WEBGL_PARAM_TYPE_FLOAT
EMSCRIPTEN_WEBGL_PARAM_TYPE_INT
EM_CALLBACK_THREAD_CONTEXT_CALLING_THREAD
EM_CALLBACK_THREAD_CONTEXT_MAIN_BROWSER_THREAD
EM_CALLBACK_THREAD_CONTEXT_MAIN_RUNTIME_THREAD
EM_FUNC_SIG_ARGUMENTS_TYPE_MASK
EM_FUNC_SIG_ARGUMENT_TYPE_SIZE_MASK
EM_FUNC_SIG_ARGUMENT_TYPE_SIZE_SHIFT
EM_FUNC_SIG_NUM_PARAMETERS_MASK
EM_FUNC_SIG_NUM_PARAMETERS_SHIFT
EM_FUNC_SIG_PARAM_B
EM_FUNC_SIG_PARAM_D
EM_FUNC_SIG_PARAM_F
EM_FUNC_SIG_PARAM_F2I
EM_FUNC_SIG_PARAM_I
EM_FUNC_SIG_PARAM_J
EM_FUNC_SIG_PARAM_P
EM_FUNC_SIG_RETURN_VALUE_D
EM_FUNC_SIG_RETURN_VALUE_F
EM_FUNC_SIG_RETURN_VALUE_I
EM_FUNC_SIG_RETURN_VALUE_J
EM_FUNC_SIG_RETURN_VALUE_MASK
EM_FUNC_SIG_RETURN_VALUE_P
EM_FUNC_SIG_RETURN_VALUE_V
EM_FUNC_SIG_SPECIAL_INTERNAL
EM_HTML5_LONG_STRING_LEN_BYTES
EM_HTML5_MEDIUM_STRING_LEN_BYTES
EM_HTML5_SHORT_STRING_LEN_BYTES
EM_LOG_CONSOLE
EM_LOG_C_STACK
EM_LOG_DEBUG
EM_LOG_DEMANGLE
EM_LOG_ERROR
EM_LOG_FUNC_PARAMS
EM_LOG_INFO
EM_LOG_JS_STACK
EM_LOG_NO_PATHS
EM_LOG_WARN
EM_MATH_E
EM_MATH_LN2
EM_MATH_LN10
EM_MATH_LOG2E
EM_MATH_LOG10E
EM_MATH_PI
EM_MATH_SQRT2
EM_MATH_SQRT1_2
EM_QUEUED_JS_CALL_MAX_ARGS
EM_TIMING_RAF
EM_TIMING_SETIMMEDIATE
EM_TIMING_SETTIMEOUT
EM_WEBGL_POWER_PREFERENCE_DEFAULT
EM_WEBGL_POWER_PREFERENCE_HIGH_PERFORMANCE
EM_WEBGL_POWER_PREFERENCE_LOW_POWER
SEM_NSEMS_MAX
SEM_VALUE_MAX
WEBAUDIO_CHANNEL_COUNT_MODE_WEBAUDIO_CHANNEL_COUNT_MODE_CLAMPED_MAX
WEBAUDIO_CHANNEL_COUNT_MODE_WEBAUDIO_CHANNEL_COUNT_MODE_EXPLICIT
WEBAUDIO_CHANNEL_COUNT_MODE_WEBAUDIO_CHANNEL_COUNT_MODE_MAX
WEBAUDIO_CHANNEL_INTERPRETATION_WEBAUDIO_CHANNEL_INTERPRETATION_DISCRETE
WEBAUDIO_CHANNEL_INTERPRETATION_WEBAUDIO_CHANNEL_INTERPRETATION_SPEAKERS
_EMVAL_FALSE
_EMVAL_LAST_RESERVED_HANDLE
_EMVAL_NULL
_EMVAL_TRUE
_EMVAL_UNDEFINED
_POSIX_SEM_NSEMS_MAX
_POSIX_SEM_VALUE_MAX
__EMSCRIPTEN_MAJOR__
__EMSCRIPTEN_MINOR__
__EMSCRIPTEN_TINY__
__EMSCRIPTEN_major__
__EMSCRIPTEN_minor__
__EMSCRIPTEN_tiny__
em_promise_result_t_EM_PROMISE_FULFILL
em_promise_result_t_EM_PROMISE_MATCH
em_promise_result_t_EM_PROMISE_MATCH_RELEASE
em_promise_result_t_EM_PROMISE_REJECT
emscripten_internal_EM_INVOKER_KIND_CAST
emscripten_internal_EM_INVOKER_KIND_CONSTRUCTOR
emscripten_internal_EM_INVOKER_KIND_FUNCTION
emscripten_internal_EM_INVOKER_KIND_METHOD

Functions§

_emscripten_push_main_loop_blocker⚠
_emscripten_push_uncounted_main_loop_blocker⚠
em_proxying_queue_create⚠
em_proxying_queue_destroy⚠
emscripten_asm_const_async_on_main_thread⚠
emscripten_asm_const_double⚠
emscripten_asm_const_double_sync_on_main_thread⚠
emscripten_asm_const_int⚠
emscripten_asm_const_int_sync_on_main_thread⚠
emscripten_asm_const_ptr⚠
emscripten_asm_const_ptr_sync_on_main_thread⚠
emscripten_async_call⚠
emscripten_async_load_script⚠
emscripten_async_run_in_main_runtime_thread_⚠
emscripten_async_run_script⚠
emscripten_async_waitable_close⚠
emscripten_async_waitable_run_in_main_runtime_thread_⚠
emscripten_async_wget⚠
emscripten_async_wget2⚠
emscripten_async_wget2_abort⚠
emscripten_async_wget2_data⚠
emscripten_async_wget_data⚠
emscripten_atomic_cancel_all_wait_asyncs⚠
emscripten_atomic_cancel_all_wait_asyncs_at_address⚠
emscripten_atomic_cancel_wait_async⚠
emscripten_atomic_wait_async⚠
emscripten_atomic_wait_suspending⚠
emscripten_atomics_is_lock_free⚠
emscripten_audio_context_quantum_size⚠
emscripten_audio_context_sample_rate⚠
emscripten_audio_context_state⚠
emscripten_audio_node_connect⚠
emscripten_audio_worklet_post_function_sig⚠
emscripten_audio_worklet_post_function_v⚠
emscripten_audio_worklet_post_function_vd⚠
emscripten_audio_worklet_post_function_vdd⚠
emscripten_audio_worklet_post_function_vddd⚠
emscripten_audio_worklet_post_function_vi⚠
emscripten_audio_worklet_post_function_vii⚠
emscripten_audio_worklet_post_function_viii⚠
emscripten_builtin_calloc⚠
emscripten_builtin_free⚠
emscripten_builtin_malloc⚠
emscripten_builtin_memalign⚠
emscripten_builtin_realloc⚠
emscripten_call_worker⚠
emscripten_cancel_animation_frame⚠
emscripten_cancel_main_loop⚠
emscripten_check_blocking_allowed⚠
emscripten_clear_immediate⚠
emscripten_clear_interval⚠
emscripten_clear_timeout⚠
emscripten_compute_dom_pk_code⚠
emscripten_condvar_init⚠
emscripten_condvar_signal⚠
emscripten_condvar_wait⚠
emscripten_condvar_wait_async⚠
emscripten_condvar_waitinf⚠
emscripten_console_error⚠
emscripten_console_errorf⚠
emscripten_console_log⚠
emscripten_console_logf⚠
emscripten_console_trace⚠
emscripten_console_tracef⚠
emscripten_console_warn⚠
emscripten_console_warnf⚠
emscripten_create_audio_context⚠
emscripten_create_wasm_audio_worklet_node⚠
emscripten_create_wasm_audio_worklet_processor_async⚠
emscripten_create_wasm_worker⚠
emscripten_create_worker⚠
emscripten_current_thread_is_audio_worklet⚠
emscripten_current_thread_is_wasm_worker⚠
emscripten_current_thread_process_queued_calls⚠
emscripten_date_now⚠
emscripten_dbg⚠
emscripten_dbg_backtrace⚠
emscripten_dbg_backtracef⚠
emscripten_dbgf⚠
emscripten_dbgn⚠
emscripten_debugger⚠
emscripten_destroy_audio_context⚠
emscripten_destroy_web_audio_node⚠
emscripten_destroy_worker⚠
emscripten_dispatch_to_thread_⚠
emscripten_dispatch_to_thread_args⚠
emscripten_dispatch_to_thread_async_⚠
emscripten_dispatch_to_thread_async_args⚠
emscripten_dlopen⚠
emscripten_dlopen_promise⚠
emscripten_dom_pk_code_to_string⚠
emscripten_dom_vk_to_string⚠
emscripten_enter_soft_fullscreen⚠
emscripten_err⚠
emscripten_errf⚠
emscripten_errn⚠
emscripten_exit_fullscreen⚠
emscripten_exit_pointerlock⚠
emscripten_exit_soft_fullscreen⚠
emscripten_exit_with_live_runtime⚠
emscripten_fetch⚠
emscripten_fetch_attr_init⚠
emscripten_fetch_close⚠
emscripten_fetch_free_unpacked_response_headers⚠
emscripten_fetch_get_response_headers⚠
emscripten_fetch_get_response_headers_length⚠
emscripten_fetch_unpack_response_headers⚠
emscripten_fetch_wait⚠
emscripten_fiber_init⚠
emscripten_fiber_init_from_current_context⚠
emscripten_fiber_swap⚠
emscripten_force_exit⚠
emscripten_futex_wait⚠
emscripten_futex_wake⚠
emscripten_get_battery_status⚠
emscripten_get_callstack⚠
emscripten_get_canvas_element_size⚠
emscripten_get_canvas_size⚠
emscripten_get_compiler_setting⚠
emscripten_get_device_pixel_ratio⚠
emscripten_get_devicemotion_status⚠
emscripten_get_deviceorientation_status⚠
emscripten_get_element_css_size⚠
emscripten_get_exported_function⚠
emscripten_get_fullscreen_status⚠
emscripten_get_gamepad_status⚠
emscripten_get_heap_max⚠
emscripten_get_heap_size⚠
emscripten_get_main_loop_timing⚠
emscripten_get_mouse_status⚠
emscripten_get_now⚠
emscripten_get_num_gamepads⚠
emscripten_get_orientation_status⚠
emscripten_get_pointerlock_status⚠
emscripten_get_preloaded_image_data⚠
emscripten_get_preloaded_image_data_from_FILE⚠
emscripten_get_sbrk_ptr⚠
emscripten_get_screen_size⚠
emscripten_get_visibility_status⚠
emscripten_get_window_title⚠
emscripten_get_worker_queue_size⚠
emscripten_has_asyncify⚠
emscripten_has_threading_support⚠
emscripten_hide_mouse⚠
emscripten_html5_remove_all_event_listeners⚠
emscripten_html5_remove_event_listener⚠
emscripten_idb_async_clear⚠
emscripten_idb_async_delete⚠
emscripten_idb_async_exists⚠
emscripten_idb_async_load⚠
emscripten_idb_async_store⚠
emscripten_idb_clear⚠
emscripten_idb_delete⚠
emscripten_idb_exists⚠
emscripten_idb_load⚠
emscripten_idb_store⚠
emscripten_init_websocket_to_posix_socket_bridge⚠
emscripten_internal__emval_array_to_memory_view⚠
emscripten_internal__emval_await⚠
emscripten_internal__emval_coro_make_promise⚠
emscripten_internal__emval_coro_suspend⚠
emscripten_internal__emval_create_invoker⚠
emscripten_internal__emval_decref⚠
emscripten_internal__emval_delete⚠
emscripten_internal__emval_equals⚠
emscripten_internal__emval_from_current_cxa_exception⚠
emscripten_internal__emval_get_global⚠
emscripten_internal__emval_get_module_property⚠
emscripten_internal__emval_get_property⚠
emscripten_internal__emval_greater_than⚠
emscripten_internal__emval_in⚠
emscripten_internal__emval_incref⚠
emscripten_internal__emval_instanceof⚠
emscripten_internal__emval_invoke⚠
emscripten_internal__emval_invoke_i64⚠
emscripten_internal__emval_is_catchable_cpp_exception_object⚠
emscripten_internal__emval_is_number⚠
emscripten_internal__emval_is_string⚠
emscripten_internal__emval_iter_begin⚠
emscripten_internal__emval_iter_next⚠
emscripten_internal__emval_less_than⚠
emscripten_internal__emval_new_array⚠
emscripten_internal__emval_new_array_from_memory_view⚠
emscripten_internal__emval_new_cstring⚠
emscripten_internal__emval_new_object⚠
emscripten_internal__emval_new_u8string⚠
emscripten_internal__emval_new_u16string⚠
emscripten_internal__emval_not⚠
emscripten_internal__emval_register_symbol⚠
emscripten_internal__emval_run_destructors⚠
emscripten_internal__emval_set_property⚠
emscripten_internal__emval_strictly_equals⚠
emscripten_internal__emval_throw⚠
emscripten_internal__emval_typeof⚠
emscripten_is_main_browser_thread⚠
emscripten_is_main_runtime_thread⚠
emscripten_is_webgl_context_lost⚠
emscripten_lock_async_acquire⚠
emscripten_lock_busyspin_wait_acquire⚠
emscripten_lock_busyspin_waitinf_acquire⚠
emscripten_lock_init⚠
emscripten_lock_orientation⚠
emscripten_lock_release⚠
emscripten_lock_try_acquire⚠
emscripten_lock_wait_acquire⚠
emscripten_lock_waitinf_acquire⚠
emscripten_log⚠
emscripten_main_runtime_thread_id⚠
emscripten_main_thread_process_queued_calls⚠
emscripten_malloc_wasm_worker⚠
emscripten_math_acos⚠
emscripten_math_acosh⚠
emscripten_math_asin⚠
emscripten_math_asinh⚠
emscripten_math_atan⚠
emscripten_math_atan2⚠
emscripten_math_atanh⚠
emscripten_math_cbrt⚠
emscripten_math_cos⚠
emscripten_math_cosh⚠
emscripten_math_exp⚠
emscripten_math_expm1⚠
emscripten_math_fmod⚠
emscripten_math_hypot⚠
emscripten_math_log⚠
emscripten_math_log2⚠
emscripten_math_log1p⚠
emscripten_math_log10⚠
emscripten_math_pow⚠
emscripten_math_random⚠
emscripten_math_round⚠
emscripten_math_sign⚠
emscripten_math_sin⚠
emscripten_math_sinh⚠
emscripten_math_sqrt⚠
emscripten_math_tan⚠
emscripten_math_tanh⚠
emscripten_navigator_hardware_concurrency⚠
emscripten_num_logical_cores⚠
emscripten_out⚠
emscripten_outf⚠
emscripten_outn⚠
emscripten_pause_main_loop⚠
emscripten_performance_now⚠
emscripten_print_double⚠
emscripten_promise_all⚠
emscripten_promise_all_settled⚠
emscripten_promise_any⚠
emscripten_promise_await⚠
emscripten_promise_await_unchecked⚠
emscripten_promise_create⚠
emscripten_promise_destroy⚠
emscripten_promise_race⚠
emscripten_promise_resolve⚠
emscripten_promise_then⚠
emscripten_proxy_async⚠
emscripten_proxy_callback⚠
emscripten_proxy_callback_with_ctx⚠
emscripten_proxy_execute_queue⚠
emscripten_proxy_finish⚠
emscripten_proxy_get_system_queue⚠
emscripten_proxy_promise⚠
emscripten_proxy_promise_with_ctx⚠
emscripten_proxy_sync⚠
emscripten_proxy_sync_with_ctx⚠
emscripten_pthread_attr_gettransferredcanvases⚠
emscripten_pthread_attr_settransferredcanvases⚠
emscripten_random⚠
emscripten_request_animation_frame⚠
emscripten_request_animation_frame_loop⚠
emscripten_request_fullscreen⚠
emscripten_request_fullscreen_strategy⚠
emscripten_request_pointerlock⚠
emscripten_resize_heap⚠
emscripten_resume_audio_context_async⚠
emscripten_resume_audio_context_sync⚠
emscripten_resume_main_loop⚠
emscripten_run_preload_plugins⚠
emscripten_run_preload_plugins_data⚠
emscripten_run_script⚠
emscripten_run_script_int⚠
emscripten_run_script_string⚠
emscripten_runtime_keepalive_check⚠
emscripten_runtime_keepalive_pop⚠
emscripten_runtime_keepalive_push⚠
emscripten_sample_gamepad_data⚠
emscripten_scan_registers⚠
emscripten_scan_stack⚠
emscripten_semaphore_async_acquire⚠
emscripten_semaphore_init⚠
emscripten_semaphore_release⚠
emscripten_semaphore_try_acquire⚠
emscripten_semaphore_wait_acquire⚠
emscripten_semaphore_waitinf_acquire⚠
emscripten_set_batterychargingchange_callback_on_thread⚠
emscripten_set_batterylevelchange_callback_on_thread⚠
emscripten_set_beforeunload_callback_on_thread⚠
emscripten_set_blur_callback_on_thread⚠
emscripten_set_canvas_element_size⚠
emscripten_set_canvas_size⚠
emscripten_set_click_callback_on_thread⚠
emscripten_set_contextmenu_callback_on_thread⚠
emscripten_set_dblclick_callback_on_thread⚠
emscripten_set_devicemotion_callback_on_thread⚠
emscripten_set_deviceorientation_callback_on_thread⚠
emscripten_set_element_css_size⚠
emscripten_set_focus_callback_on_thread⚠
emscripten_set_focusin_callback_on_thread⚠
emscripten_set_focusout_callback_on_thread⚠
emscripten_set_fullscreenchange_callback_on_thread⚠
emscripten_set_gamepadconnected_callback_on_thread⚠
emscripten_set_gamepaddisconnected_callback_on_thread⚠
emscripten_set_immediate⚠
emscripten_set_immediate_loop⚠
emscripten_set_interval⚠
emscripten_set_keydown_callback_on_thread⚠
emscripten_set_keypress_callback_on_thread⚠
emscripten_set_keyup_callback_on_thread⚠
emscripten_set_main_loop⚠
emscripten_set_main_loop_arg⚠
emscripten_set_main_loop_expected_blockers⚠
emscripten_set_main_loop_timing⚠
emscripten_set_mousedown_callback_on_thread⚠
emscripten_set_mouseenter_callback_on_thread⚠
emscripten_set_mouseleave_callback_on_thread⚠
emscripten_set_mousemove_callback_on_thread⚠
emscripten_set_mouseout_callback_on_thread⚠
emscripten_set_mouseover_callback_on_thread⚠
emscripten_set_mouseup_callback_on_thread⚠
emscripten_set_orientationchange_callback_on_thread⚠
emscripten_set_pointerlockchange_callback_on_thread⚠
emscripten_set_pointerlockerror_callback_on_thread⚠
emscripten_set_resize_callback_on_thread⚠
emscripten_set_scroll_callback_on_thread⚠
emscripten_set_socket_close_callback⚠
emscripten_set_socket_connection_callback⚠
emscripten_set_socket_error_callback⚠
emscripten_set_socket_listen_callback⚠
emscripten_set_socket_message_callback⚠
emscripten_set_socket_open_callback⚠
emscripten_set_thread_name⚠
emscripten_set_timeout⚠
emscripten_set_timeout_loop⚠
emscripten_set_touchcancel_callback_on_thread⚠
emscripten_set_touchend_callback_on_thread⚠
emscripten_set_touchmove_callback_on_thread⚠
emscripten_set_touchstart_callback_on_thread⚠
emscripten_set_visibilitychange_callback_on_thread⚠
emscripten_set_webglcontextlost_callback_on_thread⚠
emscripten_set_webglcontextrestored_callback_on_thread⚠
emscripten_set_wheel_callback_on_thread⚠
emscripten_set_window_title⚠
emscripten_sleep⚠
emscripten_stack_get_base⚠
emscripten_stack_get_current⚠
emscripten_stack_get_end⚠
emscripten_stack_get_free⚠
emscripten_stack_init⚠
emscripten_stack_set_limits⚠
emscripten_start_wasm_audio_worklet_thread_async⚠
emscripten_supports_offscreencanvas⚠
emscripten_sync_run_in_main_runtime_thread_⚠
emscripten_terminate_all_wasm_workers⚠
emscripten_terminate_wasm_worker⚠
emscripten_thread_sleep⚠
emscripten_throw_number⚠
emscripten_throw_string⚠
emscripten_unlock_orientation⚠
emscripten_unwind_to_js_event_loop⚠
emscripten_vibrate⚠
emscripten_vibrate_pattern⚠
emscripten_wait_for_call_i⚠
emscripten_wait_for_call_v⚠
emscripten_wasm_worker_post_function_sig⚠
emscripten_wasm_worker_post_function_v⚠
emscripten_wasm_worker_post_function_vd⚠
emscripten_wasm_worker_post_function_vdd⚠
emscripten_wasm_worker_post_function_vddd⚠
emscripten_wasm_worker_post_function_vi⚠
emscripten_wasm_worker_post_function_vii⚠
emscripten_wasm_worker_post_function_viii⚠
emscripten_wasm_worker_self_id⚠
emscripten_wasm_worker_sleep⚠
emscripten_webgl1_get_proc_address⚠
emscripten_webgl2_get_proc_address⚠
emscripten_webgl_commit_frame⚠
emscripten_webgl_create_context⚠
emscripten_webgl_destroy_context⚠
emscripten_webgl_enable_ANGLE_instanced_arrays⚠
emscripten_webgl_enable_EXT_clip_control⚠
emscripten_webgl_enable_EXT_polygon_offset_clamp⚠
emscripten_webgl_enable_OES_vertex_array_object⚠
emscripten_webgl_enable_WEBGL_draw_buffers⚠
emscripten_webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance⚠
emscripten_webgl_enable_WEBGL_multi_draw⚠
emscripten_webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance⚠
emscripten_webgl_enable_WEBGL_polygon_mode⚠
emscripten_webgl_enable_extension⚠
emscripten_webgl_get_context_attributes⚠
emscripten_webgl_get_current_context⚠
emscripten_webgl_get_drawing_buffer_size⚠
emscripten_webgl_get_parameter_d⚠
emscripten_webgl_get_parameter_i64v⚠
emscripten_webgl_get_parameter_o⚠
emscripten_webgl_get_parameter_utf8⚠
emscripten_webgl_get_parameter_v⚠
emscripten_webgl_get_proc_address⚠
emscripten_webgl_get_program_info_log_utf8⚠
emscripten_webgl_get_program_parameter_d⚠
emscripten_webgl_get_shader_info_log_utf8⚠
emscripten_webgl_get_shader_parameter_d⚠
emscripten_webgl_get_shader_source_utf8⚠
emscripten_webgl_get_supported_extensions⚠
emscripten_webgl_get_uniform_d⚠
emscripten_webgl_get_uniform_v⚠
emscripten_webgl_get_vertex_attrib_d⚠
emscripten_webgl_get_vertex_attrib_o⚠
emscripten_webgl_get_vertex_attrib_v⚠
emscripten_webgl_init_context_attributes⚠
emscripten_webgl_make_context_current⚠
emscripten_websocket_close⚠
emscripten_websocket_deinitialize⚠
emscripten_websocket_delete⚠
emscripten_websocket_get_buffered_amount⚠
emscripten_websocket_get_extensions⚠
emscripten_websocket_get_extensions_length⚠
emscripten_websocket_get_protocol⚠
emscripten_websocket_get_protocol_length⚠
emscripten_websocket_get_ready_state⚠
emscripten_websocket_get_url⚠
emscripten_websocket_get_url_length⚠
emscripten_websocket_is_supported⚠
emscripten_websocket_new⚠
emscripten_websocket_send_binary⚠
emscripten_websocket_send_utf8_text⚠
emscripten_websocket_set_onclose_callback_on_thread⚠
emscripten_websocket_set_onerror_callback_on_thread⚠
emscripten_websocket_set_onmessage_callback_on_thread⚠
emscripten_websocket_set_onopen_callback_on_thread⚠
emscripten_wget⚠
emscripten_wget_data⚠
emscripten_worker_respond⚠
emscripten_worker_respond_provisionally⚠

Type Aliases§

AUDIO_CONTEXT_STATE
EMSCRIPTEN_AUDIO_WORKLET_NODE_T
EMSCRIPTEN_WEBAUDIO_T
EMSCRIPTEN_WEBGL_CONTEXT_HANDLE
EMSCRIPTEN_WEBGL_CONTEXT_PROXY_MODE
EM_WEBGL_POWER_PREFERENCE
EmscriptenResumeAudioContextCallback
EmscriptenStartWebAudioWorkletCallback
EmscriptenWorkletNodeProcessCallback
EmscriptenWorkletProcessorCreatedCallback
FILE
WEBAUDIO_CHANNEL_COUNT_MODE
WEBAUDIO_CHANNEL_INTERPRETATION
WEBAUDIO_PARAM_AUTOMATION_RATE
__builtin_va_list
asyncify_data_t
em_arg_callback_func
em_async_wget2_data_onerror_func
em_async_wget2_data_onload_func
em_async_wget2_data_onprogress_func
em_async_wget2_onload_func
em_async_wget2_onstatus_func
em_async_wget_onload_func
em_battery_callback_func
em_beforeunload_callback
em_callback_func
em_canvasresized_callback_func
em_devicemotion_callback_func
em_deviceorientation_callback_func
em_dlopen_callback
em_focus_callback_func
em_fullscreenchange_callback_func
em_gamepad_callback_func
em_idb_exists_func
em_idb_onload_func
em_key_callback_func
em_mouse_callback_func
em_orientationchange_callback_func
em_pointerlockchange_callback_func
em_pointerlockerror_callback_func
em_promise_callback_t
em_promise_result_t
em_promise_t
em_run_preload_plugins_data_onload_func
em_scan_func
em_socket_callback
em_socket_error_callback
em_str_callback_func
em_touch_callback_func
em_ui_callback_func
em_visibilitychange_callback_func
em_webgl_context_callback
em_websocket_close_callback_func
em_websocket_error_callback_func
em_websocket_message_callback_func
em_websocket_open_callback_func
em_wheel_callback_func
em_worker_callback_func
emscripten_EM_VAL
emscripten_align1_double
emscripten_align1_float
emscripten_align1_int
emscripten_align1_int64
emscripten_align1_short
emscripten_align2_double
emscripten_align2_float
emscripten_align2_int
emscripten_align2_int64
emscripten_align4_double
emscripten_align4_int64
emscripten_async_wait_callback_t
emscripten_async_wait_volatile_callback_t
emscripten_fiber_t
emscripten_internal_EM_DESTRUCTORS
emscripten_internal_EM_GENERIC_WIRE_TYPE
emscripten_internal_EM_INVOKER
emscripten_internal_EM_INVOKER_KIND
emscripten_internal_EM_VAR_ARGS
emscripten_internal_TYPEID
emscripten_internal__bindgen_ty_1
pthread_t
rep
va_list
worker_handle

Unions§

pthread_attr_t__bindgen_ty_1