github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/design/services.md (about) 1 ## Top-level sections 2 3 - [General principles: WASM](#general-principles-wasm) 4 - [General principles: VSQL DDL](#general-principles-vsql-ddl) 5 - [Development](#development) 6 7 --- 8 ## General principles: WASM 9 10 Development 11 12 - Extension language 13 - Development: Go 14 - Compilation: TinyGo 15 16 Runtime 17 - wazero 18 - Preallocated Buffer 19 - Used to send data from the host 20 - WasmPreallocatedBufferSize: 64K + 25% growth if necessary 21 - Per wazero module 22 - Garbage collection is not used 23 - Reason: too slow (even when runtime is a compiler) and unreliable 24 - In case of memory overflow the memory is restored to the initial state and function call is repeated 25 26 ### Related components 27 28 Voedger Engine 29 - [pkg: iextengine](../../pkg/iextengine) 30 - [pkg: iextenginebuiltin](../../pkg/iextenginebuiltin) 31 - [pkg: iextenginewazero](../../pkg/iextenginewazero/README.md) 32 33 SDK 34 - [pkg: github.com/voedger/exttinygo](../../staging/src/github.com/voedger/exttinygo/README.md) 35 36 --- 37 ## General principles: VSQL DDL 38 39 - No NULL values 40 - NULL-reference is just zero value 41 - Not possible to update an unique field 42 43 ### Related components 44 - [pkg: parser](../../pkg/parser) 45 46 --- 47 ## Development 48 ### Principles 49 50 *Folder Structure* 51 - vddl files 52 - `extwasm` folder 53 54 ### Related components 55 56 - [cli: vpm](../../cmd/vpm/README.md) 57 58