ABI layout

Use this page when you call the C ABI directly or write an FFI binding. Each section gives the layout of one record that your code exchanges with the library.

  • Sizes, alignments, and offsets are in bytes.
  • A versioned record starts with its size and version header.
  • Follow the ownership and initialization rules of each operation together with these layouts.

stardust_bytes

  • Size: 16 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
dataconst uint8_t *08
lengthint64_t88

stardust_node_view

  • Size: 56 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
kinduint32_t04
booleanuint32_t44
parentuint32_t84
positionuint32_t124
first_childuint32_t164
next_siblinguint32_t204
keystardust_bytes2416
textstardust_bytes4016

stardust_node_input

  • Size: 64 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSizeMeaning
parentuint32_t04—
kinduint32_t44—
booleanuint32_t84—
numberuint32_t124Selects integer or real for a Number node. Zero selects Integer.
keystardust_bytes1616—
textstardust_bytes3216—
integerint64_t488Contains the value when number is STARDUST_NUMBER_INTEGER. Otherwise, set integer to zero.
realdouble568Contains the finite value when number is STARDUST_NUMBER_FLOAT. Otherwise, set real to zero.

stardust_diagnostic_view

  • Size: 88 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
codestardust_bytes016
messagestardust_bytes1616
pathstardust_bytes3216
fieldstardust_bytes4816
entityint64_t648
offsetint64_t728
presentuint32_t804
reserveduint32_t844

stardust_cost

  • Size: 24 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
cpu_ticksint64_t08
wall_ticksint64_t88
arena_bytesint64_t168

stardust_expr_build_explain

  • Size: 88 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
prepare_expressionstardust_cost024
compilestardust_cost2424
totalstardust_cost4824
arena_capacityint64_t728
stages_completeduint32_t804
cache_hituint32_t844

stardust_expr_eval_explain

  • Size: 120 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
prepare_variablesstardust_cost024
evaluatestardust_cost2424
adopt_documentstardust_cost4824
totalstardust_cost7224
arena_capacityint64_t968
document_bytesint64_t1048
stages_completeduint32_t1124
reserveduint32_t1164

stardust_license_view

  • Size: 128 bytes
  • Alignment: 8 bytes
  • Versioned header: yes
FieldC typeOffsetSize
sizeuint32_t04
versionuint32_t44
activeuint32_t84
failureuint32_t124
support_end_ticksint64_t168
expires_ticksint64_t248
build_ticksint64_t328
refused_support_end_ticksint64_t408
subjectstardust_bytes4816
license_idstardust_bytes6416
namestardust_bytes8016
licensestardust_bytes9616
tierstardust_bytes11216

stardust_db_options

  • Size: 64 bytes
  • Alignment: 8 bytes
  • Versioned header: yes
FieldC typeOffsetSize
sizeuint32_t04
versionuint32_t44
createuint32_t84
clearuint32_t124
pin_memoryuint32_t164
page_sizeuint32_t204
lock_timeout_ticksint64_t248
initial_map_bytesint64_t328
commit_batch_ticksint64_t408
pluginsconst stardust_document *488
memory_budget_bytesint64_t568

stardust_db_query_options

  • Size: 32 bytes
  • Alignment: 8 bytes
  • Versioned header: yes
FieldC typeOffsetSize
sizeuint32_t04
versionuint32_t44
page_sizeuint32_t84
reserveduint32_t124
max_cost_ticksint64_t168
as_ofint64_t248

stardust_db_write_options

  • Size: 24 bytes
  • Alignment: 8 bytes
  • Versioned header: yes
FieldC typeOffsetSize
sizeuint32_t04
versionuint32_t44
max_cost_ticksint64_t88
as_ofint64_t168

stardust_db_query_explain

  • Size: 224 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
load_definitionstardust_cost024
parametersstardust_cost2424
runstardust_cost4824
totalstardust_cost7224
arena_capacityint64_t968
work_ticksint64_t1048
rowsint64_t1128
compile_ticksint64_t1208
plan_ticksint64_t1288
execute_ticksint64_t1368
group_ticksint64_t1448
order_ticksint64_t1528
memory_bytesint64_t1608
memory_refusalsint64_t1688
budget_bytesint64_t1768
budget_used_bytesint64_t1848
budget_peak_bytesint64_t1928
budget_refusalsint64_t2008
retry_ticksint64_t2088
stages_completeduint32_t2164
retriesuint32_t2204

stardust_db_mutation_explain

  • Size: 112 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
load_definitionstardust_cost024
parametersstardust_cost2424
runstardust_cost4824
totalstardust_cost7224
arena_capacityint64_t968
stages_completeduint32_t1044
attemptsuint32_t1084

stardust_db_patch_explain

  • Size: 88 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
copy_patchstardust_cost024
commitstardust_cost2424
totalstardust_cost4824
arena_capacityint64_t728
stages_completeduint32_t804
reserveduint32_t844

stardust_db_commit_info

  • Size: 32 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
statusuint32_t04
reserveduint32_t44
transactionint64_t88
factsint64_t168
committed_at_ticksint64_t248

stardust_db_source

  • Size: 32 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
kinduint32_t04
reserveduint32_t44
pathstardust_bytes816
documentconst stardust_document *248

stardust_db_live_event

  • Size: 32 bytes
  • Alignment: 8 bytes
  • Versioned header: no
FieldC typeOffsetSize
sequenceint64_t08
supersededint64_t88
transactionint64_t168
resultstardust_document *248