├── .cargo └── config.toml ├── .dockerignore ├── .env.sample ├── .gitattributes ├── .github ├── CODEOWNERS ├── pull_request_template.md └── workflows │ ├── benchmarks.yml │ ├── bottest.yml │ ├── bottest_tracing_fix.patch │ ├── check-merge-labels.yml │ ├── check-pr-base.yml │ ├── ci.yml │ ├── discord-posts.yml │ ├── docker.yml │ ├── package.yml │ ├── pr-only-ci.yml │ ├── rust_matcher.json │ ├── tag-release.yml │ └── upgrade-version-check.yml ├── .gitignore ├── .jenkins └── Jenkinsfile.internal ├── .rustfmt.toml ├── Cargo.lock ├── Cargo.toml ├── Dockerfile ├── LICENSE.txt ├── README.md ├── clippy.toml ├── crates ├── auth │ ├── Cargo.toml │ ├── LICENSE │ └── src │ │ ├── identity.rs │ │ └── lib.rs ├── bench │ ├── .gitignore │ ├── Cargo.toml │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── benches │ │ ├── callgrind.rs │ │ ├── delete_table.rs │ │ ├── generic.rs │ │ ├── index.rs │ │ ├── special.rs │ │ └── subscription.rs │ ├── callgrind-docker.sh │ ├── clippy.toml │ ├── flamegraph.sh │ ├── hyper_cmp.py │ ├── instruments.sh │ └── src │ │ ├── bin │ │ └── summarize.rs │ │ ├── database.rs │ │ ├── lib.rs │ │ ├── schemas.rs │ │ ├── spacetime_module.rs │ │ ├── spacetime_raw.rs │ │ └── sqlite.rs ├── bindings-csharp │ ├── .config │ │ └── dotnet-tools.json │ ├── .editorconfig │ ├── .gitignore │ ├── BSATN.Codegen │ │ ├── BSATN.Codegen.csproj │ │ ├── Diag.cs │ │ ├── Type.cs │ │ └── Utils.cs │ ├── BSATN.Runtime.Tests │ │ ├── BSATN.Runtime.Tests.csproj │ │ └── Tests.cs │ ├── BSATN.Runtime │ │ ├── .gitignore │ │ ├── Attrs.cs │ │ ├── BSATN.Runtime.csproj │ │ ├── BSATN │ │ │ ├── AlgebraicType.cs │ │ │ ├── I128.cs │ │ │ ├── I256.cs │ │ │ ├── Runtime.cs │ │ │ ├── U128.cs │ │ │ └── U256.cs │ │ ├── Builtins.cs │ │ ├── Db.cs │ │ ├── Internal │ │ │ └── ByteArrayComparer.cs │ │ └── package.json │ ├── Codegen.Tests │ │ ├── Codegen.Tests.csproj │ │ ├── TestInit.cs │ │ ├── Tests.cs │ │ └── fixtures │ │ │ ├── Directory.Build.props │ │ │ ├── client │ │ │ ├── Lib.cs │ │ │ ├── client.csproj │ │ │ └── snapshots │ │ │ │ ├── Type#CustomClass.verified.cs │ │ │ │ ├── Type#CustomStruct.verified.cs │ │ │ │ ├── Type#CustomTaggedEnum.verified.cs │ │ │ │ └── Type#PublicTable.verified.cs │ │ │ ├── diag │ │ │ ├── .gitattributes │ │ │ ├── Lib.cs │ │ │ ├── diag.csproj │ │ │ └── snapshots │ │ │ │ ├── ExtraCompilationErrors.verified.txt │ │ │ │ ├── Module#FFI.verified.cs │ │ │ │ ├── Module#InAnotherNamespace.TestDuplicateTableName.verified.cs │ │ │ │ ├── Module#Reducers.InAnotherNamespace.TestDuplicateReducerName.verified.cs │ │ │ │ ├── Module#Reducers.OnReducerWithReservedPrefix.verified.cs │ │ │ │ ├── Module#Reducers.TestDuplicateReducerKind1.verified.cs │ │ │ │ ├── Module#Reducers.TestDuplicateReducerKind2.verified.cs │ │ │ │ ├── Module#Reducers.TestDuplicateReducerName.verified.cs │ │ │ │ ├── Module#Reducers.TestReducerReturnType.verified.cs │ │ │ │ ├── Module#Reducers.TestReducerWithoutContext.verified.cs │ │ │ │ ├── Module#Reducers.__ReducerWithReservedPrefix.verified.cs │ │ │ │ ├── Module#TestAutoIncNotInteger.verified.cs │ │ │ │ ├── Module#TestDuplicateTableName.verified.cs │ │ │ │ ├── Module#TestIndexIssues.verified.cs │ │ │ │ ├── Module#TestScheduleIssues.DummyScheduledReducer.verified.cs │ │ │ │ ├── Module#TestScheduleIssues.verified.cs │ │ │ │ ├── Module#TestTableTaggedEnum.verified.cs │ │ │ │ ├── Module#TestUniqueNotEquatable.verified.cs │ │ │ │ ├── Module.verified.txt │ │ │ │ ├── Type#TestTaggedEnumField.verified.cs │ │ │ │ ├── Type#TestTaggedEnumInlineTuple.verified.cs │ │ │ │ ├── Type#TestTypeParams_T_.verified.cs │ │ │ │ ├── Type#TestUnsupportedType.verified.cs │ │ │ │ └── Type.verified.txt │ │ │ └── server │ │ │ ├── Lib.cs │ │ │ ├── server.csproj │ │ │ └── snapshots │ │ │ ├── Module#BTreeMultiColumn.verified.cs │ │ │ ├── Module#BTreeViews.verified.cs │ │ │ ├── Module#FFI.verified.cs │ │ │ ├── Module#MultiTableRow.InsertMultiData.verified.cs │ │ │ ├── Module#MultiTableRow.verified.cs │ │ │ ├── Module#PrivateTable.verified.cs │ │ │ ├── Module#PublicTable.verified.cs │ │ │ ├── Module#Reducers.InsertData.verified.cs │ │ │ ├── Module#Reducers.ScheduleImmediate.verified.cs │ │ │ ├── Module#RegressionMultipleUniqueIndexesHadSameName.verified.cs │ │ │ ├── Module#Test.NestingNamespaces.AndClasses.InsertData2.verified.cs │ │ │ ├── Module#Timers.Init.verified.cs │ │ │ ├── Module#Timers.SendMessageTimer.verified.cs │ │ │ ├── Module#Timers.SendScheduledMessage.verified.cs │ │ │ ├── Type#ContainsNestedLists.verified.cs │ │ │ ├── Type#CustomClass.verified.cs │ │ │ ├── Type#CustomNestedClass.verified.cs │ │ │ ├── Type#CustomRecord.verified.cs │ │ │ ├── Type#CustomStruct.verified.cs │ │ │ ├── Type#CustomTaggedEnum.verified.cs │ │ │ ├── Type#EmptyClass.verified.cs │ │ │ ├── Type#EmptyRecord.verified.cs │ │ │ └── Type#EmptyStruct.verified.cs │ ├── Codegen │ │ ├── Codegen.csproj │ │ ├── Diag.cs │ │ ├── Module.cs │ │ └── README.md │ ├── Directory.Build.props │ ├── LICENSE │ ├── README.md │ ├── Runtime │ │ ├── Attrs.cs │ │ ├── Exceptions.cs │ │ ├── Filter.cs │ │ ├── Internal │ │ │ ├── .gitattributes │ │ │ ├── Autogen │ │ │ │ ├── IndexType.g.cs │ │ │ │ ├── Lifecycle.g.cs │ │ │ │ ├── MiscModuleExport.g.cs │ │ │ │ ├── RawColumnDefV8.g.cs │ │ │ │ ├── RawConstraintDataV9.g.cs │ │ │ │ ├── RawConstraintDefV8.g.cs │ │ │ │ ├── RawConstraintDefV9.g.cs │ │ │ │ ├── RawIndexAlgorithm.g.cs │ │ │ │ ├── RawIndexDefV8.g.cs │ │ │ │ ├── RawIndexDefV9.g.cs │ │ │ │ ├── RawMiscModuleExportV9.g.cs │ │ │ │ ├── RawModuleDef.g.cs │ │ │ │ ├── RawModuleDefV8.g.cs │ │ │ │ ├── RawModuleDefV9.g.cs │ │ │ │ ├── RawReducerDefV9.g.cs │ │ │ │ ├── RawRowLevelSecurityDefV9.g.cs │ │ │ │ ├── RawScheduleDefV9.g.cs │ │ │ │ ├── RawScopedTypeNameV9.g.cs │ │ │ │ ├── RawSequenceDefV8.g.cs │ │ │ │ ├── RawSequenceDefV9.g.cs │ │ │ │ ├── RawTableDefV8.g.cs │ │ │ │ ├── RawTableDefV9.g.cs │ │ │ │ ├── RawTypeDefV9.g.cs │ │ │ │ ├── RawUniqueConstraintDataV9.g.cs │ │ │ │ ├── ReducerDef.g.cs │ │ │ │ ├── TableAccess.g.cs │ │ │ │ ├── TableDesc.g.cs │ │ │ │ ├── TableType.g.cs │ │ │ │ ├── TypeAlias.g.cs │ │ │ │ └── Typespace.g.cs │ │ │ ├── Bounds.cs │ │ │ ├── FFI.cs │ │ │ ├── IIndex.cs │ │ │ ├── IReducer.cs │ │ │ ├── ITable.cs │ │ │ └── Module.cs │ │ ├── Log.cs │ │ ├── LogStopwatch.cs │ │ ├── README.md │ │ ├── Runtime.csproj │ │ ├── bindings.c │ │ ├── build │ │ │ ├── SpacetimeDB.Runtime.props │ │ │ └── SpacetimeDB.Runtime.targets │ │ └── driver.h │ ├── SpacetimeSharpSATS.sln │ └── logo.png ├── bindings-macro │ ├── Cargo.toml │ ├── LICENSE │ └── src │ │ ├── lib.rs │ │ ├── reducer.rs │ │ ├── sats.rs │ │ ├── table.rs │ │ └── util.rs ├── bindings-sys │ ├── Cargo.toml │ ├── LICENSE │ └── src │ │ └── lib.rs ├── bindings │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── bindings-doctests.sh │ ├── src │ │ ├── client_visibility_filter.rs │ │ ├── lib.rs │ │ ├── log_stopwatch.rs │ │ ├── logger.rs │ │ ├── rng.rs │ │ ├── rt.rs │ │ └── table.rs │ └── tests │ │ ├── deps.rs │ │ ├── snapshots │ │ ├── deps__duplicate_deps.snap │ │ └── deps__spacetimedb_bindings_dependencies.snap │ │ ├── ui.rs │ │ └── ui │ │ ├── reducers.rs │ │ ├── reducers.stderr │ │ ├── tables.rs │ │ └── tables.stderr ├── cli │ ├── Cargo.toml │ ├── LICENSE │ ├── build.rs │ ├── clippy.toml │ ├── src │ │ ├── api.rs │ │ ├── common_args.rs │ │ ├── config.rs │ │ ├── detect.rs │ │ ├── edit_distance.rs │ │ ├── errors.rs │ │ ├── lib.rs │ │ ├── main.rs │ │ ├── subcommands │ │ │ ├── build.rs │ │ │ ├── call.rs │ │ │ ├── delete.rs │ │ │ ├── describe.rs │ │ │ ├── dns.rs │ │ │ ├── energy.rs │ │ │ ├── generate.rs │ │ │ ├── init.rs │ │ │ ├── list.rs │ │ │ ├── login.rs │ │ │ ├── logout.rs │ │ │ ├── logs.rs │ │ │ ├── mod.rs │ │ │ ├── project │ │ │ │ ├── .spacetime._toml │ │ │ │ ├── csharp │ │ │ │ │ ├── Lib._cs │ │ │ │ │ ├── StdbModule._csproj │ │ │ │ │ ├── _gitignore │ │ │ │ │ └── global._json │ │ │ │ └── rust │ │ │ │ │ ├── Cargo._toml │ │ │ │ │ ├── _gitignore │ │ │ │ │ ├── config._toml │ │ │ │ │ └── lib._rs │ │ │ ├── publish.rs │ │ │ ├── repl.rs │ │ │ ├── server.rs │ │ │ ├── sql.rs │ │ │ ├── start.rs │ │ │ ├── subscribe.rs │ │ │ └── version.rs │ │ ├── tasks │ │ │ ├── csharp.rs │ │ │ ├── mod.rs │ │ │ └── rust.rs │ │ ├── util.rs │ │ └── version.rs │ └── tools │ │ └── sublime │ │ └── SpacetimeDBSQL.sublime-syntax ├── client-api-messages │ ├── Cargo.toml │ ├── DEVELOP.md │ ├── LICENSE │ ├── README.md │ ├── examples │ │ └── get_ws_schema.rs │ └── src │ │ ├── energy.rs │ │ ├── http.rs │ │ ├── lib.rs │ │ ├── name.rs │ │ ├── name │ │ └── tests.rs │ │ └── websocket.rs ├── client-api │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── auth.rs │ │ ├── lib.rs │ │ ├── routes │ │ ├── database.rs │ │ ├── energy.rs │ │ ├── health.rs │ │ ├── identity.rs │ │ ├── internal.rs │ │ ├── metrics.rs │ │ ├── mod.rs │ │ ├── prometheus.rs │ │ └── subscribe.rs │ │ ├── util.rs │ │ └── util │ │ ├── flat_csv.rs │ │ └── websocket.rs ├── codegen │ ├── Cargo.toml │ ├── LICENSE │ ├── examples │ │ └── regen-csharp-moduledef.rs │ ├── src │ │ ├── code_indenter.rs │ │ ├── csharp.rs │ │ ├── lib.rs │ │ ├── rust.rs │ │ ├── typescript.rs │ │ └── util.rs │ └── tests │ │ ├── codegen.rs │ │ └── snapshots │ │ ├── codegen__codegen_csharp.snap │ │ ├── codegen__codegen_rust.snap │ │ └── codegen__codegen_typescript.snap ├── commitlog │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── proptest-regressions │ │ ├── commit.txt │ │ └── tests │ │ │ └── bitflip.txt │ ├── src │ │ ├── commit.rs │ │ ├── commitlog.rs │ │ ├── error.rs │ │ ├── index │ │ │ ├── indexfile.rs │ │ │ └── mod.rs │ │ ├── lib.rs │ │ ├── payload.rs │ │ ├── payload │ │ │ └── txdata.rs │ │ ├── repo │ │ │ ├── fs.rs │ │ │ ├── mem.rs │ │ │ └── mod.rs │ │ ├── segment.rs │ │ ├── stream.rs │ │ ├── stream │ │ │ ├── common.rs │ │ │ ├── reader.rs │ │ │ └── writer.rs │ │ ├── tests.rs │ │ ├── tests │ │ │ ├── bitflip.rs │ │ │ ├── helpers.rs │ │ │ └── partial.rs │ │ ├── varchar.rs │ │ └── varint.rs │ └── tests │ │ ├── io.rs │ │ ├── random_payload │ │ └── mod.rs │ │ └── streaming │ │ └── mod.rs ├── core │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── proptest-regressions │ │ └── db │ │ │ └── datastore │ │ │ └── locking_tx_datastore │ │ │ └── delete_table.txt │ └── src │ │ ├── auth │ │ ├── mod.rs │ │ └── token_validation.rs │ │ ├── callgrind_flag.rs │ │ ├── client.rs │ │ ├── client │ │ ├── client_connection.rs │ │ ├── client_connection_index.rs │ │ ├── message_handlers.rs │ │ └── messages.rs │ │ ├── config.rs │ │ ├── database_logger.rs │ │ ├── db │ │ ├── datastore │ │ │ ├── error.rs │ │ │ ├── locking_tx_datastore │ │ │ │ ├── committed_state.rs │ │ │ │ ├── datastore.rs │ │ │ │ ├── delete_table.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── mut_tx.rs │ │ │ │ ├── sequence.rs │ │ │ │ ├── state_view.rs │ │ │ │ ├── tx.rs │ │ │ │ └── tx_state.rs │ │ │ ├── mod.rs │ │ │ ├── system_tables.rs │ │ │ └── traits.rs │ │ ├── db_metrics │ │ │ ├── data_size.rs │ │ │ └── mod.rs │ │ ├── mod.rs │ │ ├── relational_db.rs │ │ └── update.rs │ │ ├── energy.rs │ │ ├── error.rs │ │ ├── estimation.rs │ │ ├── execution_context.rs │ │ ├── host │ │ ├── disk_storage.rs │ │ ├── host_controller.rs │ │ ├── instance_env.rs │ │ ├── mod.rs │ │ ├── module_host.rs │ │ ├── scheduler.rs │ │ ├── wasm_common.rs │ │ ├── wasm_common │ │ │ ├── abi.rs │ │ │ ├── instrumentation.rs │ │ │ └── module_host_actor.rs │ │ └── wasmtime │ │ │ ├── mod.rs │ │ │ ├── wasm_instance_env.rs │ │ │ └── wasmtime_module.rs │ │ ├── lib.rs │ │ ├── messages │ │ ├── control_db.rs │ │ ├── control_worker_api.rs │ │ ├── instance_db_trace_log.rs │ │ ├── mod.rs │ │ └── worker_db.rs │ │ ├── module_host_context.rs │ │ ├── replica_context.rs │ │ ├── sql │ │ ├── ast.rs │ │ ├── compiler.rs │ │ ├── execute.rs │ │ ├── mod.rs │ │ ├── parser.rs │ │ └── type_check.rs │ │ ├── startup.rs │ │ ├── subscription │ │ ├── delta.rs │ │ ├── execution_unit.rs │ │ ├── mod.rs │ │ ├── module_subscription_actor.rs │ │ ├── module_subscription_manager.rs │ │ ├── query.rs │ │ ├── subscription.rs │ │ └── tx.rs │ │ ├── util │ │ ├── jobs.rs │ │ ├── mod.rs │ │ ├── notify_once.rs │ │ ├── prometheus_handle.rs │ │ └── slow.rs │ │ ├── vm.rs │ │ └── worker_metrics │ │ └── mod.rs ├── data-structures │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── error_stream.rs │ │ ├── lib.rs │ │ ├── map.rs │ │ ├── nstr.rs │ │ └── slim_slice.rs ├── durability │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── imp │ │ ├── local.rs │ │ └── mod.rs │ │ └── lib.rs ├── execution │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── dml.rs │ │ ├── iter.rs │ │ ├── lib.rs │ │ └── pipelined.rs ├── expr │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── check.rs │ │ ├── errors.rs │ │ ├── expr.rs │ │ ├── lib.rs │ │ ├── rls.rs │ │ └── statement.rs ├── fs-utils │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── compression.rs │ │ ├── dir_trie.rs │ │ ├── lib.rs │ │ └── lockfile.rs ├── lib │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── build.rs │ ├── proptest-regressions │ │ ├── address.txt │ │ ├── db │ │ │ └── column_ordering.txt │ │ └── identity.txt │ ├── src │ │ ├── connection_id.rs │ │ ├── db │ │ │ ├── attr.rs │ │ │ ├── auth.rs │ │ │ ├── default_element_ordering.rs │ │ │ ├── error.rs │ │ │ ├── mod.rs │ │ │ ├── raw_def.rs │ │ │ └── raw_def │ │ │ │ ├── v8.rs │ │ │ │ └── v9.rs │ │ ├── direct_index_key.rs │ │ ├── error.rs │ │ ├── filterable_value.rs │ │ ├── identity.rs │ │ ├── lib.rs │ │ ├── metrics.rs │ │ ├── operator.rs │ │ ├── query.rs │ │ ├── relation.rs │ │ ├── scheduler.rs │ │ ├── st_var.rs │ │ └── version.rs │ └── tests │ │ ├── serde.rs │ │ └── snapshots │ │ ├── serde__json_mappings-2.snap │ │ └── serde__json_mappings.snap ├── metrics │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── lib.rs │ │ └── typed_prometheus.rs ├── paths │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── cli.rs │ │ ├── lib.rs │ │ ├── server.rs │ │ ├── standalone.rs │ │ └── utils.rs ├── physical-plan │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── compile.rs │ │ ├── dml.rs │ │ ├── lib.rs │ │ ├── plan.rs │ │ └── rules.rs ├── primitives │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── proptest-regressions │ │ └── col_list.txt │ └── src │ │ ├── attr.rs │ │ ├── col_list.rs │ │ ├── errno.rs │ │ ├── ids.rs │ │ └── lib.rs ├── query │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ └── lib.rs ├── sats │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── proptest-regressions │ │ ├── algebraic_value_hash.txt │ │ ├── timestamp.txt │ │ └── typespace.txt │ ├── src │ │ ├── algebraic_type.rs │ │ ├── algebraic_type │ │ │ ├── fmt.rs │ │ │ └── map_notation.rs │ │ ├── algebraic_type_ref.rs │ │ ├── algebraic_value.rs │ │ ├── algebraic_value │ │ │ ├── de.rs │ │ │ └── ser.rs │ │ ├── algebraic_value_hash.rs │ │ ├── array_type.rs │ │ ├── array_value.rs │ │ ├── bsatn.rs │ │ ├── bsatn │ │ │ ├── de.rs │ │ │ ├── eq.rs │ │ │ └── ser.rs │ │ ├── buffer.rs │ │ ├── convert.rs │ │ ├── de.rs │ │ ├── de │ │ │ ├── impls.rs │ │ │ └── serde.rs │ │ ├── hash.rs │ │ ├── hex.rs │ │ ├── lib.rs │ │ ├── meta_type.rs │ │ ├── primitives.rs │ │ ├── product_type.rs │ │ ├── product_type_element.rs │ │ ├── product_value.rs │ │ ├── proptest.rs │ │ ├── resolve_refs.rs │ │ ├── satn.rs │ │ ├── ser.rs │ │ ├── ser │ │ │ ├── impls.rs │ │ │ └── serde.rs │ │ ├── size_of.rs │ │ ├── sum_type.rs │ │ ├── sum_type_variant.rs │ │ ├── sum_value.rs │ │ ├── time_duration.rs │ │ ├── timestamp.rs │ │ └── typespace.rs │ └── tests │ │ └── encoding_roundtrip.proptest-regressions ├── schema │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── proptest-regressions │ │ └── type_for_generate.txt │ ├── src │ │ ├── auto_migrate.rs │ │ ├── def.rs │ │ ├── def │ │ │ ├── deserialize.rs │ │ │ ├── validate.rs │ │ │ └── validate │ │ │ │ ├── v8.rs │ │ │ │ └── v9.rs │ │ ├── error.rs │ │ ├── identifier.rs │ │ ├── lib.rs │ │ ├── reserved_identifiers.txt │ │ ├── schema.rs │ │ └── type_for_generate.rs │ └── tests │ │ └── ensure_same_schema.rs ├── sdk │ ├── Cargo.toml │ ├── LICENSE │ ├── examples │ │ └── quickstart-chat │ │ │ ├── README.md │ │ │ ├── main.rs │ │ │ └── module_bindings │ │ │ ├── identity_connected_reducer.rs │ │ │ ├── identity_disconnected_reducer.rs │ │ │ ├── message_table.rs │ │ │ ├── message_type.rs │ │ │ ├── mod.rs │ │ │ ├── send_message_reducer.rs │ │ │ ├── set_name_reducer.rs │ │ │ ├── user_table.rs │ │ │ └── user_type.rs │ ├── src │ │ ├── callbacks.rs │ │ ├── client_cache.rs │ │ ├── credentials.rs │ │ ├── db_connection.rs │ │ ├── db_context.rs │ │ ├── error.rs │ │ ├── event.rs │ │ ├── lib.rs │ │ ├── metrics.rs │ │ ├── spacetime_module.rs │ │ ├── subscription.rs │ │ ├── table.rs │ │ └── websocket.rs │ └── tests │ │ ├── connect_disconnect_client │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ └── src │ │ │ ├── main.rs │ │ │ └── module_bindings │ │ │ ├── connected_table.rs │ │ │ ├── connected_type.rs │ │ │ ├── disconnected_table.rs │ │ │ ├── disconnected_type.rs │ │ │ ├── identity_connected_reducer.rs │ │ │ ├── identity_disconnected_reducer.rs │ │ │ └── mod.rs │ │ ├── test-client │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ └── src │ │ │ ├── main.rs │ │ │ ├── module_bindings │ │ │ ├── b_tree_u_32_type.rs │ │ │ ├── btree_u_32_table.rs │ │ │ ├── byte_struct_type.rs │ │ │ ├── delete_from_btree_u_32_reducer.rs │ │ │ ├── delete_large_table_reducer.rs │ │ │ ├── delete_pk_bool_reducer.rs │ │ │ ├── delete_pk_connection_id_reducer.rs │ │ │ ├── delete_pk_i_128_reducer.rs │ │ │ ├── delete_pk_i_16_reducer.rs │ │ │ ├── delete_pk_i_256_reducer.rs │ │ │ ├── delete_pk_i_32_reducer.rs │ │ │ ├── delete_pk_i_64_reducer.rs │ │ │ ├── delete_pk_i_8_reducer.rs │ │ │ ├── delete_pk_identity_reducer.rs │ │ │ ├── delete_pk_string_reducer.rs │ │ │ ├── delete_pk_u_128_reducer.rs │ │ │ ├── delete_pk_u_16_reducer.rs │ │ │ ├── delete_pk_u_256_reducer.rs │ │ │ ├── delete_pk_u_32_insert_pk_u_32_two_reducer.rs │ │ │ ├── delete_pk_u_32_reducer.rs │ │ │ ├── delete_pk_u_32_two_reducer.rs │ │ │ ├── delete_pk_u_64_reducer.rs │ │ │ ├── delete_pk_u_8_reducer.rs │ │ │ ├── delete_unique_bool_reducer.rs │ │ │ ├── delete_unique_connection_id_reducer.rs │ │ │ ├── delete_unique_i_128_reducer.rs │ │ │ ├── delete_unique_i_16_reducer.rs │ │ │ ├── delete_unique_i_256_reducer.rs │ │ │ ├── delete_unique_i_32_reducer.rs │ │ │ ├── delete_unique_i_64_reducer.rs │ │ │ ├── delete_unique_i_8_reducer.rs │ │ │ ├── delete_unique_identity_reducer.rs │ │ │ ├── delete_unique_string_reducer.rs │ │ │ ├── delete_unique_u_128_reducer.rs │ │ │ ├── delete_unique_u_16_reducer.rs │ │ │ ├── delete_unique_u_256_reducer.rs │ │ │ ├── delete_unique_u_32_reducer.rs │ │ │ ├── delete_unique_u_64_reducer.rs │ │ │ ├── delete_unique_u_8_reducer.rs │ │ │ ├── enum_with_payload_type.rs │ │ │ ├── every_primitive_struct_type.rs │ │ │ ├── every_vec_struct_type.rs │ │ │ ├── indexed_simple_enum_table.rs │ │ │ ├── indexed_simple_enum_type.rs │ │ │ ├── indexed_table_2_table.rs │ │ │ ├── indexed_table_2_type.rs │ │ │ ├── indexed_table_table.rs │ │ │ ├── indexed_table_type.rs │ │ │ ├── insert_call_timestamp_reducer.rs │ │ │ ├── insert_caller_one_connection_id_reducer.rs │ │ │ ├── insert_caller_one_identity_reducer.rs │ │ │ ├── insert_caller_pk_connection_id_reducer.rs │ │ │ ├── insert_caller_pk_identity_reducer.rs │ │ │ ├── insert_caller_unique_connection_id_reducer.rs │ │ │ ├── insert_caller_unique_identity_reducer.rs │ │ │ ├── insert_caller_vec_connection_id_reducer.rs │ │ │ ├── insert_caller_vec_identity_reducer.rs │ │ │ ├── insert_into_btree_u_32_reducer.rs │ │ │ ├── insert_into_indexed_simple_enum_reducer.rs │ │ │ ├── insert_into_pk_btree_u_32_reducer.rs │ │ │ ├── insert_large_table_reducer.rs │ │ │ ├── insert_one_bool_reducer.rs │ │ │ ├── insert_one_byte_struct_reducer.rs │ │ │ ├── insert_one_connection_id_reducer.rs │ │ │ ├── insert_one_enum_with_payload_reducer.rs │ │ │ ├── insert_one_every_primitive_struct_reducer.rs │ │ │ ├── insert_one_every_vec_struct_reducer.rs │ │ │ ├── insert_one_f_32_reducer.rs │ │ │ ├── insert_one_f_64_reducer.rs │ │ │ ├── insert_one_i_128_reducer.rs │ │ │ ├── insert_one_i_16_reducer.rs │ │ │ ├── insert_one_i_256_reducer.rs │ │ │ ├── insert_one_i_32_reducer.rs │ │ │ ├── insert_one_i_64_reducer.rs │ │ │ ├── insert_one_i_8_reducer.rs │ │ │ ├── insert_one_identity_reducer.rs │ │ │ ├── insert_one_simple_enum_reducer.rs │ │ │ ├── insert_one_string_reducer.rs │ │ │ ├── insert_one_timestamp_reducer.rs │ │ │ ├── insert_one_u_128_reducer.rs │ │ │ ├── insert_one_u_16_reducer.rs │ │ │ ├── insert_one_u_256_reducer.rs │ │ │ ├── insert_one_u_32_reducer.rs │ │ │ ├── insert_one_u_64_reducer.rs │ │ │ ├── insert_one_u_8_reducer.rs │ │ │ ├── insert_one_unit_struct_reducer.rs │ │ │ ├── insert_option_every_primitive_struct_reducer.rs │ │ │ ├── insert_option_i_32_reducer.rs │ │ │ ├── insert_option_identity_reducer.rs │ │ │ ├── insert_option_simple_enum_reducer.rs │ │ │ ├── insert_option_string_reducer.rs │ │ │ ├── insert_option_vec_option_i_32_reducer.rs │ │ │ ├── insert_pk_bool_reducer.rs │ │ │ ├── insert_pk_connection_id_reducer.rs │ │ │ ├── insert_pk_i_128_reducer.rs │ │ │ ├── insert_pk_i_16_reducer.rs │ │ │ ├── insert_pk_i_256_reducer.rs │ │ │ ├── insert_pk_i_32_reducer.rs │ │ │ ├── insert_pk_i_64_reducer.rs │ │ │ ├── insert_pk_i_8_reducer.rs │ │ │ ├── insert_pk_identity_reducer.rs │ │ │ ├── insert_pk_simple_enum_reducer.rs │ │ │ ├── insert_pk_string_reducer.rs │ │ │ ├── insert_pk_u_128_reducer.rs │ │ │ ├── insert_pk_u_16_reducer.rs │ │ │ ├── insert_pk_u_256_reducer.rs │ │ │ ├── insert_pk_u_32_reducer.rs │ │ │ ├── insert_pk_u_32_two_reducer.rs │ │ │ ├── insert_pk_u_64_reducer.rs │ │ │ ├── insert_pk_u_8_reducer.rs │ │ │ ├── insert_primitives_as_strings_reducer.rs │ │ │ ├── insert_table_holds_table_reducer.rs │ │ │ ├── insert_unique_bool_reducer.rs │ │ │ ├── insert_unique_connection_id_reducer.rs │ │ │ ├── insert_unique_i_128_reducer.rs │ │ │ ├── insert_unique_i_16_reducer.rs │ │ │ ├── insert_unique_i_256_reducer.rs │ │ │ ├── insert_unique_i_32_reducer.rs │ │ │ ├── insert_unique_i_64_reducer.rs │ │ │ ├── insert_unique_i_8_reducer.rs │ │ │ ├── insert_unique_identity_reducer.rs │ │ │ ├── insert_unique_string_reducer.rs │ │ │ ├── insert_unique_u_128_reducer.rs │ │ │ ├── insert_unique_u_16_reducer.rs │ │ │ ├── insert_unique_u_256_reducer.rs │ │ │ ├── insert_unique_u_32_reducer.rs │ │ │ ├── insert_unique_u_32_update_pk_u_32_reducer.rs │ │ │ ├── insert_unique_u_64_reducer.rs │ │ │ ├── insert_unique_u_8_reducer.rs │ │ │ ├── insert_user_reducer.rs │ │ │ ├── insert_vec_bool_reducer.rs │ │ │ ├── insert_vec_byte_struct_reducer.rs │ │ │ ├── insert_vec_connection_id_reducer.rs │ │ │ ├── insert_vec_enum_with_payload_reducer.rs │ │ │ ├── insert_vec_every_primitive_struct_reducer.rs │ │ │ ├── insert_vec_every_vec_struct_reducer.rs │ │ │ ├── insert_vec_f_32_reducer.rs │ │ │ ├── insert_vec_f_64_reducer.rs │ │ │ ├── insert_vec_i_128_reducer.rs │ │ │ ├── insert_vec_i_16_reducer.rs │ │ │ ├── insert_vec_i_256_reducer.rs │ │ │ ├── insert_vec_i_32_reducer.rs │ │ │ ├── insert_vec_i_64_reducer.rs │ │ │ ├── insert_vec_i_8_reducer.rs │ │ │ ├── insert_vec_identity_reducer.rs │ │ │ ├── insert_vec_simple_enum_reducer.rs │ │ │ ├── insert_vec_string_reducer.rs │ │ │ ├── insert_vec_timestamp_reducer.rs │ │ │ ├── insert_vec_u_128_reducer.rs │ │ │ ├── insert_vec_u_16_reducer.rs │ │ │ ├── insert_vec_u_256_reducer.rs │ │ │ ├── insert_vec_u_32_reducer.rs │ │ │ ├── insert_vec_u_64_reducer.rs │ │ │ ├── insert_vec_u_8_reducer.rs │ │ │ ├── insert_vec_unit_struct_reducer.rs │ │ │ ├── large_table_table.rs │ │ │ ├── large_table_type.rs │ │ │ ├── mod.rs │ │ │ ├── no_op_succeeds_reducer.rs │ │ │ ├── one_bool_table.rs │ │ │ ├── one_bool_type.rs │ │ │ ├── one_byte_struct_table.rs │ │ │ ├── one_byte_struct_type.rs │ │ │ ├── one_connection_id_table.rs │ │ │ ├── one_connection_id_type.rs │ │ │ ├── one_enum_with_payload_table.rs │ │ │ ├── one_enum_with_payload_type.rs │ │ │ ├── one_every_primitive_struct_table.rs │ │ │ ├── one_every_primitive_struct_type.rs │ │ │ ├── one_every_vec_struct_table.rs │ │ │ ├── one_every_vec_struct_type.rs │ │ │ ├── one_f_32_table.rs │ │ │ ├── one_f_32_type.rs │ │ │ ├── one_f_64_table.rs │ │ │ ├── one_f_64_type.rs │ │ │ ├── one_i_128_table.rs │ │ │ ├── one_i_128_type.rs │ │ │ ├── one_i_16_table.rs │ │ │ ├── one_i_16_type.rs │ │ │ ├── one_i_256_table.rs │ │ │ ├── one_i_256_type.rs │ │ │ ├── one_i_32_table.rs │ │ │ ├── one_i_32_type.rs │ │ │ ├── one_i_64_table.rs │ │ │ ├── one_i_64_type.rs │ │ │ ├── one_i_8_table.rs │ │ │ ├── one_i_8_type.rs │ │ │ ├── one_identity_table.rs │ │ │ ├── one_identity_type.rs │ │ │ ├── one_simple_enum_table.rs │ │ │ ├── one_simple_enum_type.rs │ │ │ ├── one_string_table.rs │ │ │ ├── one_string_type.rs │ │ │ ├── one_timestamp_table.rs │ │ │ ├── one_timestamp_type.rs │ │ │ ├── one_u_128_table.rs │ │ │ ├── one_u_128_type.rs │ │ │ ├── one_u_16_table.rs │ │ │ ├── one_u_16_type.rs │ │ │ ├── one_u_256_table.rs │ │ │ ├── one_u_256_type.rs │ │ │ ├── one_u_32_table.rs │ │ │ ├── one_u_32_type.rs │ │ │ ├── one_u_64_table.rs │ │ │ ├── one_u_64_type.rs │ │ │ ├── one_u_8_table.rs │ │ │ ├── one_u_8_type.rs │ │ │ ├── one_unit_struct_table.rs │ │ │ ├── one_unit_struct_type.rs │ │ │ ├── option_every_primitive_struct_table.rs │ │ │ ├── option_every_primitive_struct_type.rs │ │ │ ├── option_i_32_table.rs │ │ │ ├── option_i_32_type.rs │ │ │ ├── option_identity_table.rs │ │ │ ├── option_identity_type.rs │ │ │ ├── option_simple_enum_table.rs │ │ │ ├── option_simple_enum_type.rs │ │ │ ├── option_string_table.rs │ │ │ ├── option_string_type.rs │ │ │ ├── option_vec_option_i_32_table.rs │ │ │ ├── option_vec_option_i_32_type.rs │ │ │ ├── pk_bool_table.rs │ │ │ ├── pk_bool_type.rs │ │ │ ├── pk_connection_id_table.rs │ │ │ ├── pk_connection_id_type.rs │ │ │ ├── pk_i_128_table.rs │ │ │ ├── pk_i_128_type.rs │ │ │ ├── pk_i_16_table.rs │ │ │ ├── pk_i_16_type.rs │ │ │ ├── pk_i_256_table.rs │ │ │ ├── pk_i_256_type.rs │ │ │ ├── pk_i_32_table.rs │ │ │ ├── pk_i_32_type.rs │ │ │ ├── pk_i_64_table.rs │ │ │ ├── pk_i_64_type.rs │ │ │ ├── pk_i_8_table.rs │ │ │ ├── pk_i_8_type.rs │ │ │ ├── pk_identity_table.rs │ │ │ ├── pk_identity_type.rs │ │ │ ├── pk_simple_enum_table.rs │ │ │ ├── pk_simple_enum_type.rs │ │ │ ├── pk_string_table.rs │ │ │ ├── pk_string_type.rs │ │ │ ├── pk_u_128_table.rs │ │ │ ├── pk_u_128_type.rs │ │ │ ├── pk_u_16_table.rs │ │ │ ├── pk_u_16_type.rs │ │ │ ├── pk_u_256_table.rs │ │ │ ├── pk_u_256_type.rs │ │ │ ├── pk_u_32_table.rs │ │ │ ├── pk_u_32_two_table.rs │ │ │ ├── pk_u_32_two_type.rs │ │ │ ├── pk_u_32_type.rs │ │ │ ├── pk_u_64_table.rs │ │ │ ├── pk_u_64_type.rs │ │ │ ├── pk_u_8_table.rs │ │ │ ├── pk_u_8_type.rs │ │ │ ├── scheduled_table_table.rs │ │ │ ├── scheduled_table_type.rs │ │ │ ├── send_scheduled_message_reducer.rs │ │ │ ├── simple_enum_type.rs │ │ │ ├── table_holds_table_table.rs │ │ │ ├── table_holds_table_type.rs │ │ │ ├── unique_bool_table.rs │ │ │ ├── unique_bool_type.rs │ │ │ ├── unique_connection_id_table.rs │ │ │ ├── unique_connection_id_type.rs │ │ │ ├── unique_i_128_table.rs │ │ │ ├── unique_i_128_type.rs │ │ │ ├── unique_i_16_table.rs │ │ │ ├── unique_i_16_type.rs │ │ │ ├── unique_i_256_table.rs │ │ │ ├── unique_i_256_type.rs │ │ │ ├── unique_i_32_table.rs │ │ │ ├── unique_i_32_type.rs │ │ │ ├── unique_i_64_table.rs │ │ │ ├── unique_i_64_type.rs │ │ │ ├── unique_i_8_table.rs │ │ │ ├── unique_i_8_type.rs │ │ │ ├── unique_identity_table.rs │ │ │ ├── unique_identity_type.rs │ │ │ ├── unique_string_table.rs │ │ │ ├── unique_string_type.rs │ │ │ ├── unique_u_128_table.rs │ │ │ ├── unique_u_128_type.rs │ │ │ ├── unique_u_16_table.rs │ │ │ ├── unique_u_16_type.rs │ │ │ ├── unique_u_256_table.rs │ │ │ ├── unique_u_256_type.rs │ │ │ ├── unique_u_32_table.rs │ │ │ ├── unique_u_32_type.rs │ │ │ ├── unique_u_64_table.rs │ │ │ ├── unique_u_64_type.rs │ │ │ ├── unique_u_8_table.rs │ │ │ ├── unique_u_8_type.rs │ │ │ ├── unit_struct_type.rs │ │ │ ├── update_indexed_simple_enum_reducer.rs │ │ │ ├── update_pk_bool_reducer.rs │ │ │ ├── update_pk_connection_id_reducer.rs │ │ │ ├── update_pk_i_128_reducer.rs │ │ │ ├── update_pk_i_16_reducer.rs │ │ │ ├── update_pk_i_256_reducer.rs │ │ │ ├── update_pk_i_32_reducer.rs │ │ │ ├── update_pk_i_64_reducer.rs │ │ │ ├── update_pk_i_8_reducer.rs │ │ │ ├── update_pk_identity_reducer.rs │ │ │ ├── update_pk_simple_enum_reducer.rs │ │ │ ├── update_pk_string_reducer.rs │ │ │ ├── update_pk_u_128_reducer.rs │ │ │ ├── update_pk_u_16_reducer.rs │ │ │ ├── update_pk_u_256_reducer.rs │ │ │ ├── update_pk_u_32_reducer.rs │ │ │ ├── update_pk_u_32_two_reducer.rs │ │ │ ├── update_pk_u_64_reducer.rs │ │ │ ├── update_pk_u_8_reducer.rs │ │ │ ├── update_unique_bool_reducer.rs │ │ │ ├── update_unique_connection_id_reducer.rs │ │ │ ├── update_unique_i_128_reducer.rs │ │ │ ├── update_unique_i_16_reducer.rs │ │ │ ├── update_unique_i_256_reducer.rs │ │ │ ├── update_unique_i_32_reducer.rs │ │ │ ├── update_unique_i_64_reducer.rs │ │ │ ├── update_unique_i_8_reducer.rs │ │ │ ├── update_unique_identity_reducer.rs │ │ │ ├── update_unique_string_reducer.rs │ │ │ ├── update_unique_u_128_reducer.rs │ │ │ ├── update_unique_u_16_reducer.rs │ │ │ ├── update_unique_u_256_reducer.rs │ │ │ ├── update_unique_u_32_reducer.rs │ │ │ ├── update_unique_u_64_reducer.rs │ │ │ ├── update_unique_u_8_reducer.rs │ │ │ ├── users_table.rs │ │ │ ├── users_type.rs │ │ │ ├── vec_bool_table.rs │ │ │ ├── vec_bool_type.rs │ │ │ ├── vec_byte_struct_table.rs │ │ │ ├── vec_byte_struct_type.rs │ │ │ ├── vec_connection_id_table.rs │ │ │ ├── vec_connection_id_type.rs │ │ │ ├── vec_enum_with_payload_table.rs │ │ │ ├── vec_enum_with_payload_type.rs │ │ │ ├── vec_every_primitive_struct_table.rs │ │ │ ├── vec_every_primitive_struct_type.rs │ │ │ ├── vec_every_vec_struct_table.rs │ │ │ ├── vec_every_vec_struct_type.rs │ │ │ ├── vec_f_32_table.rs │ │ │ ├── vec_f_32_type.rs │ │ │ ├── vec_f_64_table.rs │ │ │ ├── vec_f_64_type.rs │ │ │ ├── vec_i_128_table.rs │ │ │ ├── vec_i_128_type.rs │ │ │ ├── vec_i_16_table.rs │ │ │ ├── vec_i_16_type.rs │ │ │ ├── vec_i_256_table.rs │ │ │ ├── vec_i_256_type.rs │ │ │ ├── vec_i_32_table.rs │ │ │ ├── vec_i_32_type.rs │ │ │ ├── vec_i_64_table.rs │ │ │ ├── vec_i_64_type.rs │ │ │ ├── vec_i_8_table.rs │ │ │ ├── vec_i_8_type.rs │ │ │ ├── vec_identity_table.rs │ │ │ ├── vec_identity_type.rs │ │ │ ├── vec_simple_enum_table.rs │ │ │ ├── vec_simple_enum_type.rs │ │ │ ├── vec_string_table.rs │ │ │ ├── vec_string_type.rs │ │ │ ├── vec_timestamp_table.rs │ │ │ ├── vec_timestamp_type.rs │ │ │ ├── vec_u_128_table.rs │ │ │ ├── vec_u_128_type.rs │ │ │ ├── vec_u_16_table.rs │ │ │ ├── vec_u_16_type.rs │ │ │ ├── vec_u_256_table.rs │ │ │ ├── vec_u_256_type.rs │ │ │ ├── vec_u_32_table.rs │ │ │ ├── vec_u_32_type.rs │ │ │ ├── vec_u_64_table.rs │ │ │ ├── vec_u_64_type.rs │ │ │ ├── vec_u_8_table.rs │ │ │ ├── vec_u_8_type.rs │ │ │ ├── vec_unit_struct_table.rs │ │ │ └── vec_unit_struct_type.rs │ │ │ ├── pk_test_table.rs │ │ │ ├── simple_test_table.rs │ │ │ └── unique_test_table.rs │ │ ├── test-counter │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ └── src │ │ │ └── lib.rs │ │ └── test.rs ├── snapshot │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── src │ │ ├── lib.rs │ │ └── remote.rs │ └── tests │ │ └── remote.rs ├── sql-parser │ ├── Cargo.toml │ ├── LICENSE │ └── src │ │ ├── ast │ │ ├── mod.rs │ │ ├── sql.rs │ │ └── sub.rs │ │ ├── lib.rs │ │ └── parser │ │ ├── errors.rs │ │ ├── mod.rs │ │ ├── sql.rs │ │ └── sub.rs ├── sqltest │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── build_standard.py │ ├── clippy.toml │ ├── override_with_output.sh │ ├── reformat.sh │ ├── run_all_sequential.sh │ ├── src │ │ ├── db.rs │ │ ├── main.rs │ │ ├── pg.rs │ │ ├── space.rs │ │ └── sqlite.rs │ ├── standards │ │ ├── 2016 │ │ │ ├── E │ │ │ │ ├── E011-01.tests.yml │ │ │ │ ├── E011-02.tests.yml │ │ │ │ ├── E011-03.tests.yml │ │ │ │ ├── E011-04.tests.yml │ │ │ │ ├── E011-05.tests.yml │ │ │ │ ├── E011-06.tests.yml │ │ │ │ ├── E021-01.tests.yml │ │ │ │ ├── E021-02.tests.yml │ │ │ │ ├── E021-03.tests.yml │ │ │ │ ├── E021-04.tests.yml │ │ │ │ ├── E021-05.tests.yml │ │ │ │ ├── E021-06.tests.yml │ │ │ │ ├── E021-07.tests.yml │ │ │ │ ├── E021-08.tests.yml │ │ │ │ ├── E021-09.tests.yml │ │ │ │ ├── E021-10.tests.yml │ │ │ │ ├── E021-11.tests.yml │ │ │ │ ├── E021-12.tests.yml │ │ │ │ ├── E031-01.tests.yml │ │ │ │ ├── E031-02.tests.yml │ │ │ │ ├── E031-03.tests.yml │ │ │ │ ├── E051-01.tests.yml │ │ │ │ ├── E051-02.tests.yml │ │ │ │ ├── E051-04.tests.yml │ │ │ │ ├── E051-05.tests.yml │ │ │ │ ├── E051-06.tests.yml │ │ │ │ ├── E051-07.tests.yml │ │ │ │ ├── E051-08.tests.yml │ │ │ │ ├── E051-09.tests.yml │ │ │ │ ├── E051.tests.yml │ │ │ │ ├── E061-01.tests.yml │ │ │ │ ├── E061-02.tests.yml │ │ │ │ ├── E061-03.tests.yml │ │ │ │ ├── E061-04.tests.yml │ │ │ │ ├── E061-05.tests.yml │ │ │ │ ├── E061-06.tests.yml │ │ │ │ ├── E061-07.tests.yml │ │ │ │ ├── E061-08.tests.yml │ │ │ │ ├── E061-09.tests.yml │ │ │ │ ├── E061-11.tests.yml │ │ │ │ ├── E061-12.tests.yml │ │ │ │ ├── E061-13.tests.yml │ │ │ │ ├── E061-14.tests.yml │ │ │ │ ├── E071-01.tests.yml │ │ │ │ ├── E071-02.tests.yml │ │ │ │ ├── E071-03.tests.yml │ │ │ │ ├── E071-05.tests.yml │ │ │ │ ├── E071-06.tests.yml │ │ │ │ ├── E081-01.tests.yml │ │ │ │ ├── E081-02.tests.yml │ │ │ │ ├── E081-03.tests.yml │ │ │ │ ├── E081-04.tests.yml │ │ │ │ ├── E081-05.tests.yml │ │ │ │ ├── E081-06.tests.yml │ │ │ │ ├── E081-07.tests.yml │ │ │ │ ├── E081-08.tests.yml │ │ │ │ ├── E081-09.tests.yml │ │ │ │ ├── E081-10.tests.yml │ │ │ │ ├── E091-01.tests.yml │ │ │ │ ├── E091-02.tests.yml │ │ │ │ ├── E091-03.tests.yml │ │ │ │ ├── E091-04.tests.yml │ │ │ │ ├── E091-05.tests.yml │ │ │ │ ├── E091-06.tests.yml │ │ │ │ ├── E091-07.tests.yml │ │ │ │ ├── E101-01.tests.yml │ │ │ │ ├── E101-03.tests.yml │ │ │ │ ├── E101-04.tests.yml │ │ │ │ ├── E111.tests.yml │ │ │ │ ├── E121-01.tests.yml │ │ │ │ ├── E121-02.tests.yml │ │ │ │ ├── E121-03.tests.yml │ │ │ │ ├── E121-04.tests.yml │ │ │ │ ├── E121-06.tests.yml │ │ │ │ ├── E121-07.tests.yml │ │ │ │ ├── E121-08.tests.yml │ │ │ │ ├── E121-10.tests.yml │ │ │ │ ├── E121-17.tests.yml │ │ │ │ ├── E131.tests.yml │ │ │ │ ├── E141-01.tests.yml │ │ │ │ ├── E141-02.tests.yml │ │ │ │ ├── E141-03.tests.yml │ │ │ │ ├── E141-04.tests.yml │ │ │ │ ├── E141-06.tests.yml │ │ │ │ ├── E141-07.tests.yml │ │ │ │ ├── E141-08.tests.yml │ │ │ │ ├── E141-10.tests.yml │ │ │ │ ├── E151-01.tests.yml │ │ │ │ ├── E151-02.tests.yml │ │ │ │ ├── E152-01.tests.yml │ │ │ │ ├── E152-02.tests.yml │ │ │ │ ├── E153.tests.yml │ │ │ │ └── E161.tests.yml │ │ │ ├── F │ │ │ │ ├── F031-01.tests.yml │ │ │ │ ├── F031-02.tests.yml │ │ │ │ ├── F031-03.tests.yml │ │ │ │ ├── F031-04.tests.yml │ │ │ │ ├── F031-13.tests.yml │ │ │ │ ├── F031-16.tests.yml │ │ │ │ ├── F031-19.tests.yml │ │ │ │ ├── F041-01.tests.yml │ │ │ │ ├── F041-02.tests.yml │ │ │ │ ├── F041-03.tests.yml │ │ │ │ ├── F041-04.tests.yml │ │ │ │ ├── F041-05.tests.yml │ │ │ │ ├── F041-07.tests.yml │ │ │ │ ├── F041-08.tests.yml │ │ │ │ ├── F051-01.tests.yml │ │ │ │ ├── F051-02.tests.yml │ │ │ │ ├── F051-03.tests.yml │ │ │ │ ├── F051-04.tests.yml │ │ │ │ ├── F051-05.tests.yml │ │ │ │ ├── F051-06.tests.yml │ │ │ │ ├── F051-07.tests.yml │ │ │ │ ├── F051-08.tests.yml │ │ │ │ ├── F081.tests.yml │ │ │ │ ├── F131-01.tests.yml │ │ │ │ ├── F131-02.tests.yml │ │ │ │ ├── F131-03.tests.yml │ │ │ │ ├── F131-04.tests.yml │ │ │ │ ├── F221.tests.yml │ │ │ │ ├── F261-01.tests.yml │ │ │ │ ├── F261-02.tests.yml │ │ │ │ ├── F261-03.tests.yml │ │ │ │ ├── F261-04.tests.yml │ │ │ │ ├── F311-01.tests.yml │ │ │ │ ├── F311-02.tests.yml │ │ │ │ ├── F311-03.tests.yml │ │ │ │ ├── F311-04.tests.yml │ │ │ │ ├── F311-05.tests.yml │ │ │ │ ├── F471.tests.yml │ │ │ │ └── F481.tests.yml │ │ │ ├── S │ │ │ │ └── S011.tests.yml │ │ │ ├── T │ │ │ │ ├── T321.tests.yml │ │ │ │ └── T631.tests.yml │ │ │ └── features.yml │ │ ├── LICENSE │ │ └── README.md │ └── test │ │ ├── basic │ │ ├── delete.slt │ │ ├── insert.slt │ │ ├── joins.slt │ │ ├── select.slt │ │ ├── test_data.slt │ │ ├── test_data_join.slt │ │ └── where.slt │ │ ├── sql_2016 │ │ ├── E011_01.slt │ │ ├── E011_02.slt │ │ ├── E011_03.slt │ │ ├── E011_04.slt │ │ ├── E011_05.slt │ │ ├── E011_06.slt │ │ ├── E021_01.slt │ │ ├── E021_02.slt │ │ ├── E021_03.slt │ │ ├── E021_04.slt │ │ ├── E021_05.slt │ │ ├── E021_06.slt │ │ ├── E021_07.slt │ │ ├── E021_08.slt │ │ ├── E021_09.slt │ │ ├── E021_10.slt │ │ ├── E021_11.slt │ │ ├── E021_12.slt │ │ ├── E031_01.slt │ │ ├── E031_02.slt │ │ ├── E031_03.slt │ │ ├── E051.slt │ │ ├── E051_01.slt │ │ ├── E051_02.slt │ │ ├── E051_04.slt │ │ ├── E051_05.slt │ │ ├── E051_06.slt │ │ ├── E051_07.slt │ │ ├── E051_08.slt │ │ ├── E051_09.slt │ │ ├── E061_01.slt │ │ ├── E061_02.slt │ │ ├── E061_03.slt │ │ ├── E061_04.slt │ │ ├── E061_05.slt │ │ ├── E061_06.slt │ │ ├── E061_07.slt │ │ ├── E061_08.slt │ │ ├── E061_09.slt │ │ ├── E061_11.slt │ │ ├── E061_12.slt │ │ ├── E061_13.slt │ │ ├── E061_14.slt │ │ ├── E071_01.slt │ │ ├── E071_02.slt │ │ ├── E071_03.slt │ │ ├── E071_05.slt │ │ ├── E071_06.slt │ │ ├── E081_01.slt │ │ ├── E081_02.slt │ │ ├── E081_03.slt │ │ ├── E081_04.slt │ │ ├── E081_05.slt │ │ ├── E081_06.slt │ │ ├── E081_07.slt │ │ ├── E081_08.slt │ │ ├── E081_09.slt │ │ ├── E081_10.slt │ │ ├── E091_01.slt │ │ ├── E091_02.slt │ │ ├── E091_03.slt │ │ ├── E091_04.slt │ │ ├── E091_05.slt │ │ ├── E091_06.slt │ │ ├── E091_07.slt │ │ ├── E101_01.slt │ │ ├── E101_03.slt │ │ ├── E101_04.slt │ │ ├── E111.slt │ │ ├── E121_01.slt │ │ ├── E121_02.slt │ │ ├── E121_03.slt │ │ ├── E121_04.slt │ │ ├── E121_06.slt │ │ ├── E121_07.slt │ │ ├── E121_08.slt │ │ ├── E121_10.slt │ │ ├── E121_17.slt │ │ ├── E131.slt │ │ ├── E141_01.slt │ │ ├── E141_02.slt │ │ ├── E141_03.slt │ │ ├── E141_04.slt │ │ ├── E141_06.slt │ │ ├── E141_07.slt │ │ ├── E141_08.slt │ │ ├── E141_10.slt │ │ ├── E151_01.slt │ │ ├── E151_02.slt │ │ ├── E152_01.slt │ │ ├── E152_02.slt │ │ ├── E153.slt │ │ ├── E161.slt │ │ ├── F031_01.slt │ │ ├── F031_02.slt │ │ ├── F031_03.slt │ │ ├── F031_04.slt │ │ ├── F031_13.slt │ │ ├── F031_16.slt │ │ ├── F031_19.slt │ │ ├── F041_01.slt │ │ ├── F041_02.slt │ │ ├── F041_03.slt │ │ ├── F041_04.slt │ │ ├── F041_05.slt │ │ ├── F041_07.slt │ │ ├── F041_08.slt │ │ ├── F051_01.slt │ │ ├── F051_02.slt │ │ ├── F051_03.slt │ │ ├── F051_04.slt │ │ ├── F051_05.slt │ │ ├── F051_06.slt │ │ ├── F051_07.slt │ │ ├── F051_08.slt │ │ ├── F081.slt │ │ ├── F131_01.slt │ │ ├── F131_02.slt │ │ ├── F131_03.slt │ │ ├── F131_04.slt │ │ ├── F221.slt │ │ ├── F261_01.slt │ │ ├── F261_02.slt │ │ ├── F261_03.slt │ │ ├── F261_04.slt │ │ ├── F311_01.slt │ │ ├── F311_02.slt │ │ ├── F311_03.slt │ │ ├── F311_04.slt │ │ ├── F311_05.slt │ │ ├── F471.slt │ │ ├── F481.slt │ │ ├── S011.slt │ │ └── T631.slt │ │ └── tutorial.slt ├── standalone │ ├── .gitignore │ ├── Cargo.toml │ ├── Dockerfile │ ├── LICENSE │ ├── README.md │ ├── config.toml │ └── src │ │ ├── control_db.rs │ │ ├── control_db │ │ └── tests.rs │ │ ├── lib.rs │ │ ├── main.rs │ │ ├── subcommands │ │ ├── extract_schema.rs │ │ ├── mod.rs │ │ └── start.rs │ │ ├── util.rs │ │ └── version.rs ├── subscription │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ └── lib.rs ├── table │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── benches │ │ ├── page.rs │ │ ├── page_manager.rs │ │ ├── pointer_map.rs │ │ └── var_len_visitor.rs │ ├── proptest-regressions │ │ ├── bflatn_to.txt │ │ ├── btree_index.txt │ │ ├── pointer_map.txt │ │ ├── read_column.txt │ │ ├── row_hash.txt │ │ ├── ser.txt │ │ ├── static_bsatn_validator.txt │ │ ├── table.txt │ │ └── table_index │ │ │ └── unique_directer_index.txt │ └── src │ │ ├── bflatn_from.rs │ │ ├── bflatn_to.rs │ │ ├── blob_store.rs │ │ ├── eq.rs │ │ ├── eq_to_pv.rs │ │ ├── fixed_bit_set.rs │ │ ├── indexes.rs │ │ ├── layout.rs │ │ ├── lib.rs │ │ ├── memory_usage.rs │ │ ├── page.rs │ │ ├── page_pool.rs │ │ ├── pages.rs │ │ ├── pointer_map.rs │ │ ├── read_column.rs │ │ ├── row_hash.rs │ │ ├── row_type_visitor.rs │ │ ├── static_bsatn_validator.rs │ │ ├── static_layout.rs │ │ ├── table.rs │ │ ├── table_index │ │ ├── key_size.rs │ │ ├── mod.rs │ │ ├── multimap.rs │ │ ├── unique_direct_fixed_cap_index.rs │ │ ├── unique_direct_index.rs │ │ └── uniquemap.rs │ │ ├── util.rs │ │ └── var_len.rs ├── testing │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── src │ │ ├── lib.rs │ │ ├── modules.rs │ │ └── sdk.rs │ └── tests │ │ └── standalone_integration_test.rs ├── update │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── build.rs │ ├── spacetime-install.ps1 │ ├── spacetime-install.sh │ └── src │ │ ├── cli.rs │ │ ├── cli │ │ ├── install.rs │ │ ├── link.rs │ │ ├── list.rs │ │ ├── self_install.rs │ │ ├── uninstall.rs │ │ ├── upgrade.rs │ │ └── use.rs │ │ ├── main.rs │ │ └── proxy.rs └── vm │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ ├── errors.rs │ ├── eval.rs │ ├── expr.rs │ ├── iterators.rs │ ├── lib.rs │ ├── main.rs │ ├── ops │ ├── mod.rs │ └── parse.rs │ ├── program.rs │ ├── rel_ops.rs │ └── relation.rs ├── docker-compose-live.yml ├── docker-compose-release.yml ├── docker-compose.yml ├── docs └── bsatn │ ├── .gitignore │ ├── LICENSE │ ├── Makefile │ ├── katex-header.html │ ├── readme.md │ └── spec.tex ├── git-hooks ├── hooks │ ├── applypatch-msg.sample │ ├── commit-msg.sample │ ├── fsmonitor-watchman.sample │ ├── post-update.sample │ ├── pre-applypatch.sample │ ├── pre-commit │ ├── pre-commit.sample │ ├── pre-merge-commit.sample │ ├── pre-push.sample │ ├── pre-rebase.sample │ ├── pre-receive.sample │ ├── prepare-commit-msg.sample │ ├── push-to-checkout.sample │ └── update.sample └── install-hooks.sh ├── images ├── basic-architecture-diagram.png ├── dark │ ├── logo-text.svg │ └── logo.svg ├── light │ ├── logo-text.svg │ └── logo.svg └── social │ ├── discord.svg │ ├── github.svg │ ├── linkedin.svg │ ├── stackoverflow.svg │ ├── twitch.svg │ ├── twitter.svg │ └── youtube.svg ├── modules ├── Directory.Build.props ├── Directory.Build.targets ├── benchmarks-cs │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── benchmarks-cs.csproj │ ├── circles.cs │ ├── ia_loop.cs │ ├── lib.cs │ └── synthetic.cs ├── benchmarks │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── config.toml │ └── src │ │ ├── circles.rs │ │ ├── ia_loop.rs │ │ ├── lib.rs │ │ └── synthetic.rs ├── global.json ├── keynote-benchmarks │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ └── lib.rs ├── module-test-cs │ ├── .gitignore │ ├── LICENSE │ ├── Lib.cs │ ├── README.md │ ├── module-test-cs.csproj │ └── module-test-cs.sln ├── module-test │ ├── .cargo │ │ └── config.toml │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── index.html │ ├── protobuf │ │ └── Test.proto │ └── src │ │ └── lib.rs ├── perf-test │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ └── lib.rs ├── quickstart-chat │ ├── .cargo │ │ └── config.toml │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ └── lib.rs ├── sdk-test-connect-disconnect-cs │ ├── .gitignore │ ├── LICENSE │ ├── Lib.cs │ ├── README.md │ └── sdk-test-connect-disconnect-cs.csproj ├── sdk-test-connect-disconnect │ ├── .cargo │ │ └── config.toml │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── .gitignore │ │ └── lib.rs ├── sdk-test-cs │ ├── .gitignore │ ├── LICENSE │ ├── Lib.cs │ ├── README.md │ └── sdk-test-cs.csproj └── sdk-test │ ├── .cargo │ └── config.toml │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ └── src │ └── lib.rs ├── run_standalone_temp.sh ├── rust-toolchain.toml ├── smoketests ├── __init__.py ├── __main__.py ├── config.toml ├── docker.py ├── tests │ ├── __init__.py │ ├── add_remove_index.py │ ├── auto_inc.py │ ├── auto_migration.py │ ├── clear_database.py │ ├── client_connected_error_rejects_connection.py │ ├── connect_disconnect_from_cli.py │ ├── create_project.py │ ├── csharp_module.py │ ├── default_module_clippy.py │ ├── delete_database.py │ ├── describe.py │ ├── detect_wasm_bindgen.py │ ├── domains.py │ ├── energy.py │ ├── fail_initial_publish.py │ ├── filtering.py │ ├── module_nested_op.py │ ├── modules.py │ ├── namespaces.py │ ├── new_user_flow.py │ ├── panic.py │ ├── permissions.py │ ├── replication.py │ ├── rls.py │ ├── schedule_reducer.py │ ├── servers.py │ ├── sql.py │ ├── template │ └── zz_docker.py └── unittest_parallel.py └── tools ├── check-diff.sh ├── clippy.sh ├── crate-publish-checks.py ├── find-publish-list.py ├── merge-docker-images.sh ├── perf.sh ├── publish-crates.sh ├── run-all-tests.sh ├── update-test-snapshots.sh └── upgrade-version ├── Cargo.toml ├── LICENSE └── src └── main.rs /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | rustflags = ["--cfg", "tokio_unstable"] 3 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | **/target 2 | # we do our own version pinning in the Dockerfile 3 | rust-toolchain.toml 4 | -------------------------------------------------------------------------------- /.env.sample: -------------------------------------------------------------------------------- 1 | SENDGRID_API_KEY= 2 | SENDGRID_SENDER= 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | **/module_bindings/** linguist-generated=true eol=lf 2 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | /crates/core/src/db/datastore/traits.rs @cloutiertyler 2 | /rust-toolchain.toml @cloutiertyler 3 | /.github/CODEOWNERS @cloutiertyler 4 | LICENSE.txt @cloutiertyler 5 | /crates/client-api-messages/src/websocket.rs @centril @gefjon 6 | 7 | /crates/cli/src/ @bfops @cloutiertyler @jdetter 8 | 9 | /crates/sdk/examples/quickstart-chat/ @gefjon 10 | /modules/quickstart-chat/ @gefjon 11 | -------------------------------------------------------------------------------- /.github/workflows/bottest_tracing_fix.patch: -------------------------------------------------------------------------------- 1 | diff --git a/Cargo.toml b/Cargo.toml 2 | index ec9ad430..8bd746d6 100644 3 | --- a/Cargo.toml 4 | +++ b/Cargo.toml 5 | @@ -218,7 +218,7 @@ tokio-tungstenite = { version = "0.21", features = ["native-tls"] } 6 | tokio-util = { version = "0.7.4", features = ["time"] } 7 | toml = "0.8" 8 | tower-http = { version = "0.5", features = ["cors"] } 9 | -tracing = { version = "0.1.37", features = ["release_max_level_off"] } 10 | +tracing = { version = "0.1.37" } #, features = ["release_max_level_off"] } 11 | tracing-appender = "0.2.2" 12 | tracing-core = "0.1.31" 13 | tracing-flame = "0.2.0" 14 | -------------------------------------------------------------------------------- /.github/workflows/check-merge-labels.yml: -------------------------------------------------------------------------------- 1 | name: Check merge labels 2 | 3 | on: 4 | pull_request: 5 | types: [labeled, unlabeled] 6 | merge_group: 7 | permissions: read-all 8 | 9 | jobs: 10 | label_checks: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - id: manually_blocked 14 | if: | 15 | contains(github.event.pull_request.labels.*.name, 'do not merge') 16 | run: | 17 | echo "This is labeled \"Do not merge\"." 18 | exit 1 19 | -------------------------------------------------------------------------------- /.github/workflows/check-pr-base.yml: -------------------------------------------------------------------------------- 1 | name: Git tree checks 2 | 3 | on: 4 | pull_request: 5 | types: [opened, edited] 6 | merge_group: 7 | permissions: read-all 8 | 9 | jobs: 10 | check_base_ref: 11 | name: Based on `master` 12 | runs-on: ubuntu-latest 13 | steps: 14 | - id: not_based_on_master 15 | if: | 16 | github.event_name == 'pull_request' && 17 | github.event.pull_request.base.ref != 'master' 18 | run: | 19 | echo "This PR is not based on master. Please wait until the base PR merges." 20 | exit 1 21 | -------------------------------------------------------------------------------- /.github/workflows/rust_matcher.json: -------------------------------------------------------------------------------- 1 | { 2 | "problemMatcher": [ 3 | { 4 | "owner": "rust", 5 | "pattern": [ 6 | { 7 | "regexp": "^(warning|warn|error)(\\[(.*)\\])?: (.*)$", 8 | "severity": 1, 9 | "message": 4, 10 | "code": 3 11 | }, 12 | { 13 | "regexp": "^([\\s->=]*(.*):(\\d*):(\\d*)|.*)$", 14 | "file": 2, 15 | "line": 3, 16 | "column": 4 17 | } 18 | ] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /.github/workflows/tag-release.yml: -------------------------------------------------------------------------------- 1 | on: 2 | release: 3 | types: [published] 4 | 5 | jobs: 6 | on-release: 7 | name: Re-tag latest 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Set up Docker Buildx 11 | uses: docker/setup-buildx-action@v2 12 | 13 | - name: Login to DockerHub 14 | uses: docker/login-action@v2 15 | with: 16 | username: ${{ vars.DOCKERHUB_USERNAME }} 17 | password: ${{ secrets.DOCKERHUB_PASSWORD }} 18 | 19 | - name: Retag the image 20 | run: | 21 | VERSION=${GITHUB_REF#refs/*/} 22 | docker buildx imagetools create clockworklabs/spacetimedb:$VERSION --tag clockworklabs/spacetimedb:latest 23 | -------------------------------------------------------------------------------- /.github/workflows/upgrade-version-check.yml: -------------------------------------------------------------------------------- 1 | name: Upgrade Version Check 2 | 3 | on: 4 | pull_request: 5 | types: [opened, synchronize] 6 | merge_group: 7 | permissions: read-all 8 | 9 | jobs: 10 | version_upgrade_check: 11 | runs-on: spacetimedb-runner 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v3 15 | - name: Verify that upgrade-version still works 16 | run: cd tools/upgrade-version && cargo run -- 123.456.789 17 | - name: Show diff 18 | run: git diff HEAD 19 | 20 | -------------------------------------------------------------------------------- /.rustfmt.toml: -------------------------------------------------------------------------------- 1 | max_width = 120 2 | edition = "2021" 3 | -------------------------------------------------------------------------------- /crates/auth/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "spacetimedb-auth" 3 | version.workspace = true 4 | edition.workspace = true 5 | rust-version.workspace = true 6 | license-file = "LICENSE" 7 | description = "Auth helpers for SpacetimeDB" 8 | 9 | [dependencies] 10 | spacetimedb-lib = { workspace = true, features = ["serde"] } 11 | 12 | anyhow.workspace = true 13 | serde.workspace = true 14 | serde_with.workspace = true 15 | jsonwebtoken.workspace = true 16 | 17 | [dev-dependencies] 18 | serde_json.workspace = true 19 | -------------------------------------------------------------------------------- /crates/auth/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clockworklabs/SpacetimeDB/c99dc82a483f42f165fa27b7aa41aff46bf0b84d/crates/auth/LICENSE -------------------------------------------------------------------------------- /crates/auth/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod identity; 2 | -------------------------------------------------------------------------------- /crates/bench/.gitignore: -------------------------------------------------------------------------------- 1 | .spacetime/ 2 | target/ 3 | -------------------------------------------------------------------------------- /crates/bench/Dockerfile: -------------------------------------------------------------------------------- 1 | # Dockerfile for callgrind benchmarking environment. 2 | # Set up to run from linux / WSL (running from a windows file system will be extremely slow). 3 | # See the README for commands to run. 4 | 5 | # sync with: ../../rust-toolchain.toml 6 | FROM rust:1.84.0 7 | 8 | RUN apt-get update && \ 9 | apt-get install -y valgrind bash && \ 10 | rm -rf /var/lib/apt/lists/* 11 | 12 | ENV CARGO_TARGET_DIR=/projects/SpacetimeDB/linux-target 13 | ENV CARGO_HOME=/projects/SpacetimeDB/linux-cache 14 | ENV RUSTUP_HOME=/projects/SpacetimeDB/linux-rustup 15 | 16 | RUN cargo install --git https://github.com/clockworklabs/iai-callgrind.git --branch main iai-callgrind-runner 17 | -------------------------------------------------------------------------------- /crates/bench/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/clockworklabs/SpacetimeDB/c99dc82a483f42f165fa27b7aa41aff46bf0b84d/crates/bench/LICENSE -------------------------------------------------------------------------------- /crates/bench/callgrind-docker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # script to enter iai dockerfile locally 4 | 5 | set -exo pipefail 6 | 7 | SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" 8 | cd "$SCRIPT_DIR" 9 | docker build . --tag rust-iai-callgrind:latest 10 | docker run --privileged -v "$(realpath $PWD/../..):/projects/SpacetimeDB" -w /projects/SpacetimeDB/crates/bench rust-iai-callgrind:latest cargo bench --bench callgrind -------------------------------------------------------------------------------- /crates/bench/clippy.toml: -------------------------------------------------------------------------------- 1 | # we use println in summarize.rs, don't complain about it 2 | disallowed-macros = [] 3 | -------------------------------------------------------------------------------- /crates/bench/instruments.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | 4 | if [ "$#" -lt "3" ] ; then 5 | echo "Usage: $0