# `nupp.system.spi` Implementation interface for environment facts. Importing this declaration loads no host implementation. Facts describe the executing Nupp ABI, including emulated environments, and remain fixed for the loaded facade. Providers report nonempty platform and architecture names, little or big endianness, and a 32- or 64-bit pointer width. They must agree with the target ABI used by generated code. availableParallelism estimates the number of execution units usable by this process, including host restrictions, and returns an integer of at least one. It must not create a worker pool. The browser implementation may suspend while requesting host facts. The facade chooses an external implementation by priority, then uses its native or browser fallback when discovery is empty. ## Types ### `Provider` _interface_ ```nupp interface Provider ... ``` Facts and a parallelism query for the executing ABI. #### Members | Name | Kind | Description | | --- | --- | --- | | [`priority`](#nupp.system.spi.Provider.priority) | field | | | [`platform`](#nupp.system.spi.Provider.platform) | field | Platform name, such as macos, linux, windows, or browser. | | [`architecture`](#nupp.system.spi.Provider.architecture) | field | Architecture name, such as aarch64, x8664, or wasm32. | | [`endianness`](#nupp.system.spi.Provider.endianness) | field | Byte order: little or big. | | [`pointerBits`](#nupp.system.spi.Provider.pointerBits) | field | Pointer width in bits: 32 or 64. | | [`availableParallelism`](#nupp.system.spi.Provider.availableParallelism) | method | Estimates usable execution units, always at least one. | #### `priority` _field_ ```nupp priority: integer? ``` `@readonly` #### `platform` _field_ ```nupp platform: string ``` `@readonly` Platform name, such as macos, linux, windows, or browser. #### `architecture` _field_ ```nupp architecture: string ``` `@readonly` Architecture name, such as aarch64, x86_64, or wasm32. #### `endianness` _field_ ```nupp endianness: string ``` `@readonly` Byte order: little or big. #### `pointerBits` _field_ ```nupp pointerBits: integer ``` `@readonly` Pointer width in bits: 32 or 64. #### `availableParallelism` _method_ ```nupp availableParallelism: function(): integer ``` `@readonly` Estimates usable execution units, always at least one. ##### Returns | Type | Description | | --- | --- | | `integer` | |