Untitled Project
WASM Interpreter for Safety - Requirements
1. Functional Requirements
Resumable REQ-1

The interpreter shall be resumable

  • Stackless REQ-2

    The interpreter shall be stackless

Baremetal REQ-3

The interpreter shall be executable on bare-metal environments

  • no_std REQ-4

    The interpreter shall be implemented in no_std Rust

Bounded execution REQ-5

The interpreter shall yield back control flow eventually

  • Fuel REQ-6

    The interpreter shall support fuel bounded execution

Migrateable REQ-12

The interpreter state shall be able to halt on one computer and continue execution on another

  • De-/Serializable REQ-13

    The interpreter state shall be de-/serializable

No Dependencies REQ-14

No dependencies but those explicitly allowed by a requirement shall be used

  • Allow log dependency REQ-15

    The interpreter shall have an optional dependency on the log crate version 0.4.22

  • Allow libm dependency REQ-16

    The interpreter may depend on the libm crate version 0.2.8

1.6. Low-Level Functional Requirements
  • Resumable REQ-1

    The interpreter shall be resumable

Stackless REQ-2

The interpreter shall be stackless

  • Baremetal REQ-3

    The interpreter shall be executable on bare-metal environments

no_std REQ-4

The interpreter shall be implemented in no_std Rust

  • Bounded execution REQ-5

    The interpreter shall yield back control flow eventually

Fuel REQ-6

The interpreter shall support fuel bounded execution

  • Migrateable REQ-12

    The interpreter state shall be able to halt on one computer and continue execution on another

De-/Serializable REQ-13

The interpreter state shall be de-/serializable

  • No Dependencies REQ-14

    No dependencies but those explicitly allowed by a requirement shall be used

Allow log dependency REQ-15

The interpreter shall have an optional dependency on the log crate version 0.4.22

  • No Dependencies REQ-14

    No dependencies but those explicitly allowed by a requirement shall be used

Allow libm dependency REQ-16

The interpreter may depend on the libm crate version 0.2.8

Minimum Supported Rust Version (MSRV) REQ-17

The interpreter shall compile on Rust 1.76.0 and later versions

2. Observability Requirements
Instrumentation REQ-7

The interpreter shall implement means for instrumentation

  • Statement Coverage REQ-8

    The instrumentation shall enable the measurement of statement coverage

  • Decision Coverage REQ-9

    The instrumentation shall enable the measurement of decision coverage

  • Modified Condition/Decision Coverage REQ-10

    The instrumentation shall enable the measurement of modified condition/decision coverage

2.2. Low-Level Observability Requirements
  • Instrumentation REQ-7

    The interpreter shall implement means for instrumentation

  • Certification Evidence REQ-11

    The interpreter shall support the generation of certification evidence

Statement Coverage REQ-8

The instrumentation shall enable the measurement of statement coverage

  • Instrumentation REQ-7

    The interpreter shall implement means for instrumentation

  • Certification Evidence REQ-11

    The interpreter shall support the generation of certification evidence

Decision Coverage REQ-9

The instrumentation shall enable the measurement of decision coverage

  • Instrumentation REQ-7

    The interpreter shall implement means for instrumentation

  • Certification Evidence REQ-11

    The interpreter shall support the generation of certification evidence

Modified Condition/Decision Coverage REQ-10

The instrumentation shall enable the measurement of modified condition/decision coverage

Certification Evidence REQ-11

The interpreter shall support the generation of certification evidence

  • Statement Coverage REQ-8

    The instrumentation shall enable the measurement of statement coverage

  • Decision Coverage REQ-9

    The instrumentation shall enable the measurement of decision coverage

  • Modified Condition/Decision Coverage REQ-10

    The instrumentation shall enable the measurement of modified condition/decision coverage