Browse the docs

Overview.

Each page describes the selected source API for the listed profiles. Distinct surfaces have separate pages.

ModuleCategoryImport namespaceSummary
silk.collections.bytesCollectionsBytesOwned byte buffers for file contents, process output, and other data with no fixed encoding.
silk.collections.hashCollectionsHashKeyDeterministic seeded hashing for hash maps, hash sets, and key types that users define.
silk.collections.hash_mapCollectionsHashMapHash maps that own their keys and values, with deterministic seeded hashing.
silk.collections.hash_setCollectionsHashSetHash sets that own their elements, with deterministic seeded hashing.
silk.collections.listCollectionsListGrowable lists that own their elements, with stable sorting and binary search.
silk.collections.sliceCollectionsSliceBorrowed subranges of slices, with no copy and no allocation.
silk.compress.checksumData formatsCompressionChecksumCRC checksums used by gzip and XZ containers.
silk.compress.deflateData formatsDeflateCompress bytes as raw DEFLATE, zlib, or gzip with a bounded LZ77 match table.
silk.compress.inflateData formatsDecoderDecompress raw DEFLATE, zlib, and gzip data in steps, with fixed memory and limits that you set.
silk.compress.limitsData formatscompressionResource limits and failures for complete-buffer compression codecs.
silk.compress.lzmaData formatsLzmaDecode complete LZMA-alone streams into caller-owned byte buffers.
silk.compress.lzma2Data formatsLzma2Decode complete raw LZMA2 streams into caller-owned byte buffers.
silk.compress.lzma2_decodeData formatsLzma2StreamLZMA2 chunk framing shared by raw LZMA2 and XZ decoders.
silk.compress.lzma_decodeData formatsLzmaStateShared LZMA range decoder and probability models for LZMA, LZMA2, and XZ.
silk.compress.xzData formatsXzDecode XZ containers and verify their blocks, index, and footer.
silk.compress.zstdData formatsZstdDecompress Zstandard data (RFC 8878) in steps, with fixed memory and limits that you set.
silk.compress.zstd_blockData formatsBlockStateInternal bounded zstd compressed-block decoding with retained entropy tables.
silk.compress.zstd_checksumData formatsXxh64Incremental seed-zero XXH64 state for zstd frame checksum validation.
silk.concurrency.atomicConcurrencyAtomicAtomic memory operations on raw pointers, with explicit memory orderings.
silk.concurrency.executionConcurrencyExecutionLazy computations with their own storage, which an owner drives and resumes.
silk.concurrency.execution_storageConcurrencyExecutionStorageStorage for the private execution frames that the compiler makes.
silk.concurrency.execution_storageConcurrencyExecutionStorageStorage for the private execution frames that the compiler makes.
silk.concurrency.fiberConcurrencyFiberFibers: handles to child tasks, with typed outcomes and one observer each.
silk.concurrency.local_schedulerConcurrencyLocalSchedulerA deterministic, single-threaded scheduler for structured Fibers.
silk.concurrency.schedulerConcurrencySchedulerThe provider protocol that prepares child Fibers and publishes them atomically.
silk.concurrency.syncConcurrencyArcShared ownership, locks and thread parking for values that several native threads use.
silk.concurrency.threadConcurrencyTransferableThe normal names of the sealed thread properties `Transferable` and `Concurrent`.
silk.concurrency.thread_nativeConcurrencyNativeThreadOperating-system threads that each run one `Transferable` closure and return its result.
silk.concurrency.thread_poolConcurrencyThreadPoolA work-stealing pool of native threads that runs lazy tasks in parallel.
silk.concurrency.work_queueConcurrencyWorkDequeQueues that move owned values between native threads, for work-stealing schedulers.
silk.core.boolCoreboolNamed functions for Boolean equality and negation.
silk.core.compilationCoreCompilationBuild choices of the current compilation, such as safety, threading, and artifact kind, for use in static evaluation.
silk.core.effectCoreEffectCombinators for lazy effect values: transform success, recover typed failures, supply services, and run cleanup.
silk.core.equalCoreEqualThe interface that gives user types the `==` and `!=` operators.
silk.core.opsCoreAddThe interfaces that give user types the arithmetic, bitwise, and logical operators.
silk.core.optionCoreOptionOptional owned values that are present or absent, with no explanation for the absence.
silk.core.orderCoreOrderThe interface that gives user types the `<`, `<=`, `>`, and `>=` operators.
silk.core.ownershipCoreCopyThe ordinary names for the sealed ownership properties `Copy` and `Drop`.
silk.core.reflectCoreReflectCompile-time descriptions of the fields of a struct or tuple type, for generic code that visits each field.
silk.core.resultCoreResultCompleted outcomes that hold a success value or a failure value as ordinary data.
silk.core.static_sequenceCoreStaticSequenceImmutable lists of values that exist only during static evaluation.
silk.core.static_textCoreStaticTextOperations on string literals during static evaluation: length, byte access, concatenation, and slices.
silk.core.targetCoreTargetFacts about the target machine of the current compilation: architecture, operating system, ABI, and pointer width.
silk.crypto.aes_gcmCryptographyAesGcmEncrypt and authenticate data with AES-128-GCM or AES-256-GCM (NIST SP 800-38D).
silk.crypto.aes_roundCryptographyaesThe steps of an AES round on one 16-byte state, computed with portable code: SubBytes, ShiftRows and MixColumns, and their inverses.
silk.crypto.blake2bCryptographyBlake2b512Portable BLAKE2b-512 state for the unkeyed 64-byte cryptographic digest of RFC 7693.
silk.crypto.chacha20_poly1305CryptographyChaCha20Poly1305Encrypt and authenticate data with ChaCha20-Poly1305 (RFC 8439).
silk.crypto.ed25519CryptographyEd25519PublicKeyEd25519 signature verification for 32-byte public keys and 64-byte signatures (RFC 8032).
silk.crypto.hkdfCryptographyHkdfSha256Derive keys with HKDF (RFC 5869) over SHA-256 or SHA-384.
silk.crypto.hmacCryptographyHmacSha256Compute HMAC tags (RFC 2104) with SHA-256 or SHA-384.
silk.crypto.md5CryptographyMd5Compute MD5 digests for legacy formats, including UUID version 3.
silk.crypto.p256CryptographyP256Key agreement (ECDH) and ECDSA signature verification on the NIST P-256 curve (secp256r1).
silk.crypto.p384CryptographyEcdsaP384Sha384Verify ECDSA signatures on the NIST P-384 curve (secp384r1) with SHA-384.
silk.crypto.rsaCryptographyRsaPublicKeyVerify RSA signatures with SHA-256: RSASSA-PSS and, for certificates, PKCS #1 v1.5.
silk.crypto.sha1CryptographySha1Compute SHA-1 digests (20 bytes) for old protocols and file formats.
silk.crypto.sha2CryptographySha256Compute SHA-2 digests: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, and SHA-512/256.
silk.crypto.sha3CryptographySha3_256Compute SHA-3 digests: SHA3-224, SHA3-256, SHA3-384, and SHA3-512 (FIPS 202).
silk.crypto.x25519CryptographyX25519Agree on a shared secret with X25519 (RFC 7748) Diffie-Hellman.
silk.encoding.base64Data formatsBase64Encode and decode standard Base64 (RFC 4648, with padding) into byte slices that you supply.
silk.encoding.uuidData formatsUuidUUID values and constructors for versions 1 through 8, with RFC 9562 byte order.
silk.geometry.affineGeometryAffine2Two-dimensional affine transforms: scale, rotation, skew, and translation in one matrix.
silk.geometry.insetsGeometryInsetsDistances inward from the four edges of a box, over any number type.
silk.geometry.matrixGeometryMatrix3Square 3x3 and 4x4 matrices for projective and three-dimensional transforms.
silk.geometry.pointGeometryPoint2Two- and three-dimensional positions over any number type.
silk.geometry.rectGeometryRectAxis-aligned rectangles stored as their minimum and maximum corners, over any number type.
silk.geometry.sizeGeometrySize2Two-dimensional extents over any number type.
silk.geometry.vectorGeometryVector2Two- and three-dimensional displacements over any number type.
silk.http.basicHTTPHttpBasicMake the value of an `Authorization: Basic` header from a username and a password.
silk.http.bodyHTTPDecoderRead and write the body of an HTTP/1 message: fixed length, chunked, or until the connection closes.
silk.http.clientHTTPHttpClientA simple HTTP client: send a request, and get the whole response in memory.
silk.http.client_nativeHTTPHttpClientNativeThe native provider for the `Http` service of [`silk.http.client`].
silk.http.client_nativeHTTPHttpClientNativeThe native provider for the `Http` service of [`silk.http.client`].
silk.http.client_wasiHTTPWasiHttpThe WASI Preview 2 provider for the portable `Http` service.
silk.http.client_wasiHTTPWasiHttpThe WASI Preview 2 provider for the portable `Http` service.
silk.http.connection_poolHTTPPoolA bounded pool of HTTP/1 connections, for reuse across requests to the same origin.
silk.http.connection_pool_nativeHTTPPoolNativeConnection pools that open native TCP, HTTPS, and Unix socket connections.
silk.http.contentHTTPContentReaderDecode the content of an HTTP response: gzip, deflate, and Zstandard, as named in `Content-Encoding`.
silk.http.exchangeHTTPExchangeRun HTTP/1 requests over a connection step by step: send the head, stream the body, and read the response.
silk.http.exchange_nativeHTTPHttpExchangeNativeNative TCP, Unix socket, and TLS connections for HTTP clients.
silk.http.fetchHTTPFetchSend one HTTP request, follow redirects, decode the content, and deliver the body to a destination that you choose.
silk.http.fetch_nativeHTTPFetchNativeThe native [`Context`] for `silk.http.fetch`: it connects over sockets and TLS, with a proxy policy and an optional connection pool.
silk.http.fetch_nativeHTTPFetchNativeThe native [`Context`] for `silk.http.fetch`: it connects over sockets and TLS, with a proxy policy and an optional connection pool.
silk.http.headHTTPRequestParserParse and write the head of an HTTP/1.0 or HTTP/1.1 message: the start line and the header fields.
silk.http.headersHTTPHeadersAn ordered list of HTTP header fields, with lookup by name, copies, and formatting.
silk.http.hpackHTTPDecoderHTTP/2 field compression as defined by RFC 7541.
silk.http.hpack_tablesHTTPNot applicableRFC 7541 Appendix A static fields and Appendix B Huffman decoding trie.
silk.http.http2HTTPConnectionA transport-independent HTTP/2 connection for clients and servers (RFC 9113).
silk.http.http2_connectionHTTPDriverHTTP/2 over the existing plain or TLS `HttpTransport` service.
silk.http.http2_frameHTTPFrameHeaderHTTP/2 wire frame headers, error codes, and frame serialization from RFC 9113.
silk.http.http2_headersHTTPMessageHTTP/2 field validation for requests, responses, and trailers under RFC 9113 section 8.
silk.http.messageHTTPVersionHTTP/1.0 and HTTP/1.1 values: versions, methods, statuses, header fields, and message heads.
silk.http.originHTTPOriginThe origin of an HTTP request: the scheme, host, and port that a connection goes to.
silk.http.proxyHTTPProxyConfigProxy settings for HTTP clients, and the choice of a route for each origin.
silk.http.redirectHTTPRedirectFollow HTTP redirects with a [`Policy`]: which statuses to follow, how the method and the body change, which origins are allowed, and which headers are kept.
silk.http.requestHTTPHttpRequestCheck and write the head of an HTTP request before it is sent.
silk.http.serverHTTPConnectionThe server side of one HTTP/1.0 or HTTP/1.1 connection, with streaming bodies and fixed limits.
silk.http.server_nativeHTTPHttpServerNativeAccepts native socket connections and serves each one with `silk.http.server`.
silk.http.server_nativeHTTPHttpServerNativeAccepts native socket connections and serves each one with `silk.http.server`.
silk.http.server_wasiHTTPWasiHttpServerHTTP requests delivered to a WASI Preview 2 component.
silk.http.server_wasiHTTPWasiHttpServerHTTP requests delivered to a WASI Preview 2 component.
silk.http.targetHTTPRequestTargetThe target of an HTTP request, the authority in it, and the `Host` field.
silk.http.transportHTTPHttpTransportThe byte transport under an HTTP connection: plain bytes or TLS.
silk.http.websocket_serverHTTPWebSocketServerWebSocket messages on the server side, over a channel from an accepted handshake.
silk.http.websocket_upgradeHTTPWebSocketUpgradeThe server side of the WebSocket opening handshake (RFC 6455, version 13).
silk.io.buffered_duplexInput and outputBufferedDuplexA buffered session that reads and writes one `ByteDuplex` transport inside a callback.
silk.io.buffered_inputInput and outputBufferedInputA fixed-size input buffer for parsers that must look at bytes before they use them.
silk.io.buffered_outputInput and outputBufferedOutputA fixed-size output buffer that collects small writes and sends them as larger writes.
silk.io.buffered_transferInput and outputBufferedTransferCopy bytes from one buffered session to another, and consume only what the destination accepts.
silk.io.byte_duplexInput and outputByteDuplexThe `ByteDuplex` effect: a two-way byte stream, such as a TCP connection, with partial reads and writes and deadlines.
silk.io.loggerInput and outputLoggerThe `Logger` effect: log messages with a level, a template, and values.
silk.io.logger_consoleInput and outputConsoleLoggerA `Logger` provider for browser and JavaScript hosts: [`ConsoleLogger`] hands each message to the host's console.
silk.io.logger_consoleInput and outputConsoleLoggerA `Logger` provider for browser and JavaScript hosts: [`ConsoleLogger`] hands each message to the host's console.
silk.io.logger_nativeInput and outputStdoutLoggerNative providers of the `Logger` effect: [`StderrLogger`] writes log lines to standard error, and [`StdoutLogger`] writes the bare messages to standard output.
silk.io.logger_nativeInput and outputStdoutLoggerNative providers of the `Logger` effect: [`StderrLogger`] writes log lines to standard error, and [`StdoutLogger`] writes the bare messages to standard output.
silk.io.logger_wasiInput and outputWasiLoggerA `Logger` provider for Preview 2 components whose host offers `wasi:logging`: [`WasiLogger`] passes each message to `wasi:logging/logging.log`.
silk.io.logger_wasiInput and outputWasiLoggerA `Logger` provider for Preview 2 components whose host offers `wasi:logging`: [`WasiLogger`] passes each message to `wasi:logging/logging.log`.
silk.io.memory_byte_duplexInput and outputMemoryByteDuplexA scripted `ByteDuplex` transport in memory, for tests of protocol code.
silk.io.standard_inputInput and outputStandardInputThe `StandardInput` effect: read raw bytes from standard input.
silk.io.standard_input_nativeInput and outputOsStandardInputThe native provider of the `StandardInput` effect: it reads the standard input of the process.
silk.io.standard_input_nativeInput and outputOsStandardInputThe native provider of the `StandardInput` effect: it reads the standard input of the process.
silk.io.writerInput and outputWriterThe `Writer` effect: write bytes without knowing where they go.
silk.io.writer_nativeInput and outputStdoutWriterNative `Writer` providers for standard output and standard error, and a lock for whole messages on standard error.
silk.io.writer_nativeInput and outputStdoutWriterNative `Writer` providers for standard output and standard error, and a lock for whole messages on standard error.
silk.json.arrayData formatsJsonArrayWrite a JSON array to the `Writer`.
silk.json.codecData formatsJsonCodecThe interfaces that let a type be written to JSON and read from JSON.
silk.json.objectData formatsJsonObjectWrite a JSON object, one member at a time, to the `Writer`.
silk.json.outputData formatsJsonOutputLow-level JSON output: strings, numbers, and punctuation, and the [`JsonOptions`] for layout.
silk.json.readerData formatsJsonReaderRead JSON tokens from a `BufferedInput`, for documents that do not fit in one slice.
silk.json.reflectData formatsJsonReflectWrite a struct as a JSON object from its fields, without writing each field by hand.
silk.json.scannerData formatsJsonScannerRead JSON as a sequence of tokens, without building a tree and without allocating.
silk.json.textData formatsJsonTextDecode the text of a JSON string token, including its escapes, into owned bytes.
silk.json.valueData formatsJsonParse JSON into a tree of values, read fields from it, and write it back.
silk.mem.allocatorMemoryAllocatorThe `Allocator` service: the source of owned heap storage in the standard library.
silk.mem.arenaMemoryArenaA bump allocator over chunks it acquires from another allocator.
silk.mem.boxMemoryBoxOne owned value on the heap, for recursive data and for values that must have a fixed-size handle.
silk.mem.layoutMemoryLayoutByte size and alignment values that describe the memory to request from an allocator.
silk.mem.metricsMemoryAllocationMetricsAllocation counters that an `Allocator` provider can keep and publish.
silk.mem.outputMemoryUninitializedOwned storage for one `Copy` value that a foreign function writes through a pointer.
silk.mem.pointerMemoryPointerRaw data pointers: make them, check them for null, move along them, and read and write through them.
silk.mem.raw_bufferMemoryRawBufferTyped raw storage made from an allocation, for code that implements containers.
silk.mem.sharedMemorySharedShared ownership of one mutable value on one thread, with access through callbacks.
silk.mem.slotMemorySlotInitialization-state changes for one element slot of raw storage.
silk.mem.stackMemoryStackThe native stack of the running thread: the address of the current frame, and scratch storage that lives on the stack instead of in an allocator.
silk.net.addressNetworkingNetworkAddressIP addresses, ports, endpoints, and the host of a URI, as checked values that do not allocate.
silk.net.datagram_wasiNetworkingUdpSocketOwned UDP sockets and complete datagrams through WASI Preview 2.
silk.net.datagram_wasiNetworkingUdpSocketOwned UDP sockets and complete datagrams through WASI Preview 2.
silk.net.resolverNetworkingResolverTurn a host and a port into a list of endpoints to connect to.
silk.net.resolver_nativeNetworkingNativeSystemResolverThe native provider of the `Resolver` effect, with the `getaddrinfo` function of the system.
silk.net.resolver_wasiNetworkingWasiResolverDNS resolution through a WASI Preview 2 network capability.
silk.net.resolver_wasiNetworkingWasiResolverDNS resolution through a WASI Preview 2 network capability.
silk.net.socket_nativeNetworkingNativeSocketTCP and Unix socket connections and listeners, as `ByteDuplex` providers.
silk.net.socket_wasiNetworkingwasi_socketTCP connections and listeners through WASI Preview 2 network capabilities.
silk.net.socket_wasiNetworkingwasi_socketTCP connections and listeners through WASI Preview 2 network capabilities.
silk.num.f32Numbersf32IEEE binary32 values with deterministic representation, classification, and math operations.
silk.num.f64Numbersf64IEEE binary64 values and Silk's default floating-point arithmetic.
silk.num.i16Numbersi16Sixteen-bit signed integers with explicit overflow, conversion, and text policies.
silk.num.i32Numbersi32Thirty-two-bit signed integers and the default type of context-free integer literals.
silk.num.i64Numbersi64Sixty-four-bit signed integers for large fixed-width values and exact integer protocols.
silk.num.i8Numbersi8Eight-bit signed integers for compact values, byte-level formats, and narrow arithmetic.
silk.num.isizeNumbersisizePointer-width signed integers for offsets whose range follows the selected compilation target.
silk.num.numericNumbersNumericGeneric helpers and numeric contracts for algorithms over primitive numbers.
silk.num.u16Numbersu16Sixteen-bit unsigned integers with explicit arithmetic and conversion failure policies.
silk.num.u32Numbersu32Thirty-two-bit unsigned integers for fixed-width counts, masks, and binary fields.
silk.num.u64Numbersu64Sixty-four-bit unsigned integers for wide masks, counters, hashes, and exact interchange values.
silk.num.u8Numbersu8Eight-bit unsigned integers for bytes, compact counters, and exact binary representations.
silk.num.usizeNumbersusizePointer-width unsigned integers for lengths, indices, capacities, and allocation sizes.
silk.platform.linux.mappingNative platformMappingAnonymous memory mappings from the Linux kernel, for programs that run without libc.
silk.platform.linux.mappingNative platformMappingAnonymous memory mappings from the Linux kernel, for programs that run without libc.
silk.platform.linux.process_inputsNative platformProcessInputsThe arguments, environment and page size of a raw Linux process, read from the initial stack.
silk.platform.linux.process_inputsNative platformProcessInputsThe arguments, environment and page size of a raw Linux process, read from the initial stack.
silk.platform.linux.startNative platformRawStartThe program entry for a static, non-PIE Linux executable with no libc.
silk.platform.linux.syscallNative platformRawLinuxDirect Linux system calls for programs built with no libc.
silk.platform.linux.syscallNative platformRawLinuxDirect Linux system calls for programs built with no libc.
silk.platform.native.clockNative platformNativeClockDirect calls to the clocks of the system, for the native clock providers.
silk.platform.native.descriptorNative platformNativeDescriptorReads and writes on file descriptors that the caller owns, for native providers.
silk.platform.native.descriptorNative platformNativeDescriptorReads and writes on file descriptors that the caller owns, for native providers.
silk.platform.native.descriptorNative platformNativeDescriptorReads and writes on file descriptors that the caller owns, for native providers.
silk.platform.native.diagnosticsNative platformNativeDiagnosticsThe observer of native and wasm programs that reports unhandled errors and traps, with their call path.
silk.platform.native.diagnosticsNative platformNativeDiagnosticsThe observer of native and wasm programs that reports unhandled errors and traps, with their call path.
silk.platform.native.filesystemNative platformNativeFileSystemThe system calls for files and directories, for the native `FileSystem` provider.
silk.platform.native.filesystemNative platformNativeFileSystemThe system calls for files and directories, for the native `FileSystem` provider.
silk.platform.native.host_inputNative platformNativeHostInputOwned copies of the command-line arguments and the environment of the process.
silk.platform.native.host_inputNative platformNativeHostInputOwned copies of the command-line arguments and the environment of the process.
silk.platform.native.processNative platformNativeProcessRuns a child process with the system calls, for the native `ChildProcess` provider.
silk.platform.native.processNative platformNativeProcessRuns a child process with the system calls, for the native `ChildProcess` provider.
silk.platform.native.reportNative platformNativeReportWrites the report of an unhandled error or a trap to a descriptor, with fixed limits.
silk.platform.native.reportNative platformNativeReportWrites the report of an unhandled error or a trap to a descriptor, with fixed limits.
silk.platform.native.startNative platformNativeStartThe default start code of a native program: it calls your `main` and returns its status.
silk.platform.native.start_syncNative platformNativeStartSyncA minimal start code for a native program whose `main` is an `i32` effect that requires `&mut HostInput`.
silk.platform.wasi.clockNative platformWasiClockWASI wall-clock and monotonic-clock operations.
silk.platform.wasi.clockNative platformWasiClockWASI wall-clock and monotonic-clock operations.
silk.platform.wasi.componentNative platformwasi_componentMemory and polling operations shared by WASI Preview 2 providers.
silk.platform.wasi.componentNative platformwasi_componentMemory and polling operations shared by WASI Preview 2 providers.
silk.platform.wasi.descriptorNative platformWasiDescriptorDescriptor reads and writes through WASI.
silk.platform.wasi.descriptorNative platformWasiDescriptorDescriptor reads and writes through WASI.
silk.platform.wasi.filesystemNative platformWasiFileSystemDescriptor-relative file operations within WASI preopened directories.
silk.platform.wasi.filesystemNative platformWasiFileSystemDescriptor-relative file operations within WASI preopened directories.
silk.platform.wasi.host_inputNative platformWasiHostInputA snapshot of WASI command arguments and environment variables.
silk.platform.wasi.host_inputNative platformWasiHostInputA snapshot of WASI command arguments and environment variables.
silk.platform.wasi.httpNative platformwasi_httpOwnership and canonical ABI operations for WASI Preview 2 HTTP providers.
silk.platform.wasi.httpNative platformwasi_httpOwnership and canonical ABI operations for WASI Preview 2 HTTP providers.
silk.platform.wasi.preview1Native platformwasiThe WASI Preview 1 canonical ABI, also used inside Preview 2 command components.
silk.platform.wasi.preview1Native platformwasiThe WASI Preview 1 canonical ABI, also used inside Preview 2 command components.
silk.platform.wasi.preview2Native platformwasi_preview2Raw imports for the WASI Preview 2 canonical ABI.
silk.platform.wasi.preview2Native platformwasi_preview2Raw imports for the WASI Preview 2 canonical ABI.
silk.platform.wasi.startNative platformwasi_startThe command entry for WASI Preview 1 and Preview 2.
silk.platform.wasi.streamNative platformwasi_streamOwned Preview 2 input and output streams with partial transfers and deadlines.
silk.platform.wasi.streamNative platformwasi_streamOwned Preview 2 input and output streams with partial transfers and deadlines.
silk.platform.wasm.startNative platformWasmStartThe program entry for the standalone LLVM-to-WebAssembly profile.
silk.simd.aarch64SIMDaarch64AArch64 NEON instructions that the portable `silk.simd.simd` operations do not express: table lookups, dot products, pairwise sums, and AES round steps.
silk.simd.cpuSIMDCpuFeaturesRuntime detection of the CPU features that the running machine has.
silk.simd.f32x4SIMDf32x4Operations on `simd<f32, 4>`: four 32-bit float lanes in one 128-bit vector.
silk.simd.f32x8SIMDf32x8Operations on `simd<f32, 8>`: eight 32-bit float lanes in one 256-bit vector.
silk.simd.f64x2SIMDf64x2Operations on `simd<f64, 2>`: two 64-bit float lanes in one 128-bit vector.
silk.simd.f64x4SIMDf64x4Operations on `simd<f64, 4>`: four 64-bit float lanes in one 256-bit vector.
silk.simd.i16x16SIMDi16x16Operations on `simd<i16, 16>`: sixteen signed 16-bit integer lanes in one 256-bit vector.
silk.simd.i16x8SIMDi16x8Operations on `simd<i16, 8>`: eight signed 16-bit integer lanes in one 128-bit vector.
silk.simd.i32x4SIMDi32x4Operations on `simd<i32, 4>`: four signed 32-bit integer lanes in one 128-bit vector.
silk.simd.i32x8SIMDi32x8Operations on `simd<i32, 8>`: eight signed 32-bit integer lanes in one 256-bit vector.
silk.simd.i64x2SIMDi64x2Operations on `simd<i64, 2>`: two signed 64-bit integer lanes in one 128-bit vector.
silk.simd.i64x4SIMDi64x4Operations on `simd<i64, 4>`: four signed 64-bit integer lanes in one 256-bit vector.
silk.simd.i8x16SIMDi8x16Operations on `simd<i8, 16>`: sixteen signed 8-bit integer lanes in one 128-bit vector.
silk.simd.i8x32SIMDi8x32Operations on `simd<i8, 32>`: thirty-two signed 8-bit integer lanes in one 256-bit vector.
silk.simd.mask16SIMDmask16Operations on `mask<16>`: sixteen lanes that are each set or clear.
silk.simd.mask2SIMDmask2Operations on `mask<2>`: two lanes that are each set or clear.
silk.simd.mask32SIMDmask32Operations on `mask<32>`: thirty-two lanes that are each set or clear.
silk.simd.mask4SIMDmask4Operations on `mask<4>`: four lanes that are each set or clear.
silk.simd.mask8SIMDmask8Operations on `mask<8>`: eight lanes that are each set or clear.
silk.simd.simdSIMDsimdFacts about SIMD vectors on the target CPU of the current compilation.
silk.simd.u16x16SIMDu16x16Operations on `simd<u16, 16>`: sixteen unsigned 16-bit integer lanes in one 256-bit vector.
silk.simd.u16x8SIMDu16x8Operations on `simd<u16, 8>`: eight unsigned 16-bit integer lanes in one 128-bit vector.
silk.simd.u32x4SIMDu32x4Operations on `simd<u32, 4>`: four unsigned 32-bit integer lanes in one 128-bit vector.
silk.simd.u32x8SIMDu32x8Operations on `simd<u32, 8>`: eight unsigned 32-bit integer lanes in one 256-bit vector.
silk.simd.u64x2SIMDu64x2Operations on `simd<u64, 2>`: two unsigned 64-bit integer lanes in one 128-bit vector.
silk.simd.u64x4SIMDu64x4Operations on `simd<u64, 4>`: four unsigned 64-bit integer lanes in one 256-bit vector.
silk.simd.u8x16SIMDu8x16Operations on `simd<u8, 16>`: sixteen unsigned 8-bit integer lanes in one 128-bit vector.
silk.simd.u8x32SIMDu8x32Operations on `simd<u8, 32>`: thirty-two unsigned 8-bit integer lanes in one 256-bit vector.
silk.simd.wasmSIMDwasmWebAssembly SIMD instructions that the portable `silk.simd.simd` operations do not express: byte swizzles, dot products, and saturating narrows.
silk.simd.x86SIMDx86x86-64 SIMD instructions that the portable `silk.simd.simd` operations do not express: byte table lookups, multiply-add steps, saturating packs, sums of absolute differences, AES rounds and carry-less multiplication.
silk.support.bcmpCompiler supportNot applicableWord-wise compiler support with explicit C linkage and no runtime services.
silk.support.bzeroCompiler supportNot applicableSource-owned word-wise clearing for the Darwin LLVM zero-fill helper.
silk.support.memcmpCompiler supportNot applicableWord-wise compiler support with explicit C linkage and no runtime services.
silk.support.memcpyCompiler supportNot applicableWord-wise compiler support with explicit C linkage and no runtime services.
silk.support.memmoveCompiler supportNot applicableWord-wise compiler support with explicit C linkage and no runtime services.
silk.support.memsetCompiler supportNot applicableWord-wise compiler support with explicit C linkage and no runtime services.
silk.system.child_processSystemChildProcessRun another program, wait for it to end, and get its exit code and all of its output.
silk.system.child_process_nativeSystemOsChildProcessThe native provider of the `ChildProcess` effect: it runs real programs.
silk.system.child_process_nativeSystemOsChildProcessThe native provider of the `ChildProcess` effect: it runs real programs.
silk.system.filesystemSystemFileSystemFiles and directories through the `FileSystem` effect: paths, whole-file reads and writes, atomic writes, directory listings, and temporary directories.
silk.system.filesystem_nativeSystemOsFileSystemThe native provider of the `FileSystem` effect, confined to one directory of the host.
silk.system.filesystem_nativeSystemOsFileSystemThe native provider of the `FileSystem` effect, confined to one directory of the host.
silk.system.host_inputSystemHostInputThe `HostInput` effect: the command-line arguments, environment variables, and working directory of the process, as bytes.
silk.system.host_input_nativeSystemOsHostInputThe native provider of the `HostInput` effect: command-line arguments, environment, and the working directory.
silk.system.host_input_nativeSystemOsHostInputThe native provider of the `HostInput` effect: command-line arguments, environment, and the working directory.
silk.system.insecure_randomSystemInsecureRandomThe `InsecureRandom` effect: a fast pseudorandom sequence that repeats for the same seed.
silk.system.insecure_seedSystemInsecureSeedThe `InsecureSeed` effect: one fixed 128-bit value that a program reads when it starts.
silk.system.monotonic_clockSystemMonotonicClockThe `MonotonicClock` effect: time that never goes back, for durations, timeouts, and waits.
silk.system.monotonic_clock_nativeSystemOsMonotonicClockThe native provider of the `MonotonicClock` effect: a clock that never goes back.
silk.system.randomSystemRandomThe `Random` effect: random bytes that are safe for secrets.
silk.system.random_nativeSystemOsRandomThe native provider of the `Random` effect: secure random bytes from the operating system.
silk.system.system_clockSystemSystemClockThe `SystemClock` effect: the current date and time as Unix time, and the [`Instant`] type that both clocks use.
silk.system.system_clock_nativeSystemOsSystemClockThe native provider of the `SystemClock` effect: the time of day, as seconds since 1970.
silk.system.system_clock_nativeSystemOsSystemClockThe native provider of the `SystemClock` effect: the time of day, as seconds since 1970.
silk.testing.exchangeTestingTestExchangeThe binary plan and receipt formats that let `silk test` control the test runner.
silk.testing.runnerTestingTestRunnerThe built-in test runner that `silk test` selects. It runs tests one at a time.
silk.testing.testingTestingTestingAssertions for tests, and the filter rules that the test runner uses to select tests.
silk.text.byte_searchTextbyte_searchFast searches over byte slices: the first or last position of a byte, the first of two or three bytes, the number of times a byte occurs, and the first position of a byte sequence.
silk.text.charTextcharConversion between `char` and integers, and named comparison functions for `char`.
silk.text.formatTextFormatText output for values through the ambient `Writer`, compile-time checked templates, and decimal parsing.
silk.text.stringTextStringUTF-8 text: owned strings, validation of bytes, search, splitting, trimming, and traversal one Unicode scalar at a time.
silk.text.unicodeTextUnicodeUnicode canonical normalization (NFC and NFD), with data from Unicode 17.0.0.
silk.text.unicode_tablesTextUnicodeTablesGenerated Unicode data tables for canonical normalization. `silk.text.unicode` uses these tables.
silk.text.utf8_decoderTextUtf8DecoderDecoding of UTF-8 one byte at a time, for input that arrives in chunks. No allocation.
silk.tls.certificateTLS and certificatesCertificateDecode one X.509 certificate from DER or PEM, and read its fields.
silk.tls.certificate_bundleTLS and certificatesCertificateBundleDecode a PEM file with one or more certificates, such as a certificate chain or a CA bundle.
silk.tls.certificate_identitiesTLS and certificatesCertificateSanDecode the subject alternative names (SAN) of a certificate: the DNS names and IP addresses that it is for.
silk.tls.certificate_pathTLS and certificatesCertificatePathValidate the certificate chain of a TLS server, from its leaf certificate to a trust anchor.
silk.tls.certificate_pemTLS and certificatesPemInternal strict PEM framing and canonical base64 for owned certificate decoders.
silk.tls.certificate_profileTLS and certificatesCertificateProfileCheck one certificate against the TLS server certificate profile, and read its extensions.
silk.tls.clientTLS and certificatesClientA TLS 1.3 client state machine that authenticates an HTTPS server over a byte transport that you drive.
silk.tls.connectionTLS and certificatesOwnedConnectionAn authenticated TLS 1.3 connection over a `ByteDuplex` transport, with timeouts and close handling.
silk.tls.hkdfTLS and certificatesTlsHkdfSha256The TLS 1.3 key schedule functions `HKDF-Expand-Label` and `Derive-Secret` (RFC 8446, section 7.1).
silk.tls.https_identityTLS and certificatesHttpsIdentityCheck that a server certificate is for the host name or IP address in an HTTPS URL (RFC 6125 and RFC 9110).
silk.tls.recordTLS and certificatesTlsRecordSenderFrame and protect TLS 1.3 records (RFC 8446, section 5) over a byte transport that you drive.
silk.tls.trust_anchorTLS and certificatesTrustAnchorA trust anchor: a CA certificate that you trust, with optional limits that you add.
silk.tls.trust_snapshotTLS and certificatesTrustSnapshotA fixed list of trust anchors: the root CAs that certificate path validation starts from.
silk.tls.trust_sourceTLS and certificatesTrustSourceThe `TrustSource` effect: where a program gets its trust anchors.
silk.tls.trust_source_memoryTLS and certificatesMemoryTrustSourceA `TrustSource` provider that holds a trust snapshot in memory.
silk.tls.trust_source_nativeTLS and certificatesNativeFileTrustSourceA native `TrustSource` provider that loads trust anchors from one PEM file.
silk.tls.trust_source_nativeTLS and certificatesNativeFileTrustSourceA native `TrustSource` provider that loads trust anchors from one PEM file.
silk.toml.codecData formatsTomlCodecConvert TOML values to Silk values, and write Silk values as TOML.
silk.toml.outputData formatsTomlOutputWrite a TOML document or a single TOML string or key through the ambient `Writer`.
silk.toml.scannerData formatsTomlScannerValidate TOML source and read it as a sequence of tokens.
silk.toml.textData formatsTomlTextDecode TOML string tokens into owned UTF-8 text.
silk.toml.valueData formatsTomlParse a TOML document into an owned tree of values, and read fields from it.
silk.uri.componentsData formatsUriComponentsBuild a URI reference from its components, or change the components of a parsed one.
silk.uri.percentData formatsUriPercentPercent-encode bytes for a URI component, and decode `%XX` escapes.
silk.uri.referenceData formatsUriReferenceParse a URI or a relative reference (RFC 3986) and read its components without allocation.
silk.uri.uriData formatsUriParse an absolute URI (RFC 3986), and resolve relative references against it.

Profile identities:

  • aarch64-apple-darwin: target aarch64-apple-darwin.

  • aarch64-unknown-linux-gnu: target aarch64-unknown-linux-gnu.

  • aarch64-unknown-linux-gnu-no-libc: target aarch64-unknown-linux-gnu.

  • x86_64-unknown-linux-gnu: target x86_64-unknown-linux-gnu.

  • x86_64-unknown-linux-gnu-no-libc: target x86_64-unknown-linux-gnu.

  • wasm32-unknown-unknown: target wasm32-unknown-unknown.

  • wasm32-wasip1: target wasm32-wasip1.

  • wasm32-wasip2: target wasm32-wasip2.

See also#

View the source of this page