Crate sqlite_wasm_rs

Source
Expand description

§SQLite Wasm Rust

Crates.io

Provide sqlite solution for wasm32-unknown-unknown target.

§Usage

[dependencies]
# Using `bundled` default feature causes us to automatically compile
# and link in an up to date, requires the emscripten toolchain.
sqlite-wasm-rs = "0.3"
[dependencies]
# If you don't have the emscripten toolchain, you can use the `precompiled` feature.
sqlite-wasm-rs = { version = "0.3", default-features = false, features = ["precompiled"] }
[dependencies]
# Encryption is supported by SQLite3MultipleCiphers, need to enable the bundled feature.
# See <https://utelle.github.io/SQLite3MultipleCiphers>
sqlite-wasm-rs = { version = "0.3", features = ["sqlite3mc"] }
use sqlite_wasm_rs::{self as ffi, sahpool_vfs::install as install_opfs_vfs};

async fn open_db() {
    // open with memory vfs
    let mut db = std::ptr::null_mut();
    let ret = unsafe {
        ffi::sqlite3_open_v2(
            c"mem.db".as_ptr().cast(),
            &mut db as *mut _,
            ffi::SQLITE_OPEN_READWRITE | ffi::SQLITE_OPEN_CREATE,
            std::ptr::null()
        )
    };
    assert_eq!(ffi::SQLITE_OK, ret);

    // install opfs-sahpool persistent vfs and set as default vfs
    install_opfs_vfs(None, true).await.unwrap();

    // open with opfs-sahpool vfs
    let mut db = std::ptr::null_mut();
    let ret = unsafe {
        ffi::sqlite3_open_v2(
            c"opfs-sahpool.db".as_ptr().cast(),
            &mut db as *mut _,
            ffi::SQLITE_OPEN_READWRITE | ffi::SQLITE_OPEN_CREATE,
            std::ptr::null()
        )
    };
    assert_eq!(ffi::SQLITE_OK, ret);
}

§About VFS

The following vfs have been implemented:

  • memory: as the default vfs, no additional conditions are required, store the database in memory.
  • sahpool: ported from sqlite-wasm, store the database in opfs.
  • relaxed-idb: store the database in blocks in indexed db.

Go to here to check it out.

§About multithreading

This library is not thread-safe:

§Use external libc

As mentioned above, sqlite is now directly linked to emscripten’s libc, but we provide the ability to customize libc, cargo provides a links field that can be used to specify which library to link to.

We created a new sqlite-wasm-libc library with no implementation and only a links = "libc" configuration, and then with the help of overriding build scripts, you can overriding its configuration in your crate and link sqlite to your custom libc.

More see custom-libc example.

§Why provide precompiled library

Since wasm32-unknown-unknown does not have libc, emscripten is used here for compilation, otherwise we need to copy a bunch of c headers required for sqlite3 compilation, which is a bit of a hack for me. If sqlite3 is compiled at compile time, the emscripten toolchain is required, and we cannot assume that all users have it installed. (Believe me, because rust mainly supports the wasm32-unknown-unknown target, most people do not have the emscripten toolchain). Considering that wasm is cross-platform, vendor compilation products are acceptable.

About security:

  • You can specify the bundled feature to compile sqlite locally, which requires the emscripten toolchain.
  • Currently all precompiled products are compiled and committed through Github Actions, which can be tracked, downloaded and compared.

Precompile Workflow | Change History | Actions

§Minimum supported Rust version (MSRV)

The minimal officially supported rustc version is 1.78.0

  • diesel: A safe, extensible ORM and Query Builder for Rust.
  • rusqlite: Ergonomic bindings to SQLite for Rust.
  • sqlite-wasm: SQLite Wasm conveniently wrapped as an ES Module.
  • sqlite-web-rs: A SQLite WebAssembly backend for Diesel.
  • wa-sqlite: WebAssembly SQLite with support for browser storage extensions.
  • SQLite3MultipleCiphers: SQLite3 encryption extension with support for multiple ciphers

Modules§

export
To be compatible with previous versions.
mem_vfs
Memory VFS, used as the default VFS
relaxed_idb_vfs
relaxed-idb vfs implementation
sahpool_vfs
opfs-sahpool vfs implementation, ported from sqlite-wasm
utils
Some tools for implementing VFS

Macros§

bail
Return error code if expr is true.
check_option
Unpack Option.
check_result
Unpack Ok.
unused
Mark unused parameter

Structs§

Error
Fts5Context
Fts5ExtensionApi
Fts5PhraseIter
Fts5Tokenizer
fts5_api
fts5_tokenizer
fts5_tokenizer_v2
sqlite3
sqlite3_api_routines
sqlite3_backup
sqlite3_blob
sqlite3_changegroup
sqlite3_changeset_iter
sqlite3_context
sqlite3_file
sqlite3_index_constraint
sqlite3_index_constraint_usage
sqlite3_index_info
sqlite3_index_orderby
sqlite3_io_methods
sqlite3_mem_methods
sqlite3_module
sqlite3_mutex
sqlite3_mutex_methods
sqlite3_pcache
sqlite3_pcache_methods
sqlite3_pcache_methods2
sqlite3_pcache_page
sqlite3_rebaser
sqlite3_rtree_geometry
sqlite3_rtree_query_info
sqlite3_session
sqlite3_snapshot
sqlite3_stmt
sqlite3_str
sqlite3_value
sqlite3_vfs
sqlite3_vtab
sqlite3_vtab_cursor

Enums§

ErrorCode
Error Codes

Constants§

FTS5_TOKENIZE_AUX
FTS5_TOKENIZE_DOCUMENT
FTS5_TOKENIZE_PREFIX
FTS5_TOKENIZE_QUERY
FTS5_TOKEN_COLOCATED
FULLY_WITHIN
NOT_WITHIN
PARTLY_WITHIN
SQLITE3_TEXT
SQLITE_ABORT
SQLITE_ABORT_ROLLBACK
SQLITE_ACCESS_EXISTS
SQLITE_ACCESS_READ
SQLITE_ACCESS_READWRITE
SQLITE_ALTER_TABLE
SQLITE_ANALYZE
SQLITE_ANY
SQLITE_ATTACH
SQLITE_AUTH
SQLITE_AUTH_USER
SQLITE_BLOB
SQLITE_BUSY
SQLITE_BUSY_RECOVERY
SQLITE_BUSY_SNAPSHOT
SQLITE_BUSY_TIMEOUT
SQLITE_CANTOPEN
SQLITE_CANTOPEN_CONVPATH
SQLITE_CANTOPEN_DIRTYWAL
SQLITE_CANTOPEN_FULLPATH
SQLITE_CANTOPEN_ISDIR
SQLITE_CANTOPEN_NOTEMPDIR
SQLITE_CANTOPEN_SYMLINK
SQLITE_CHANGESETAPPLY_FKNOACTION
SQLITE_CHANGESETAPPLY_IGNORENOOP
SQLITE_CHANGESETAPPLY_INVERT
SQLITE_CHANGESETAPPLY_NOSAVEPOINT
SQLITE_CHANGESETSTART_INVERT
SQLITE_CHANGESET_ABORT
SQLITE_CHANGESET_CONFLICT
SQLITE_CHANGESET_CONSTRAINT
SQLITE_CHANGESET_DATA
SQLITE_CHANGESET_FOREIGN_KEY
SQLITE_CHANGESET_NOTFOUND
SQLITE_CHANGESET_OMIT
SQLITE_CHANGESET_REPLACE
SQLITE_CHECKPOINT_FULL
SQLITE_CHECKPOINT_PASSIVE
SQLITE_CHECKPOINT_RESTART
SQLITE_CHECKPOINT_TRUNCATE
SQLITE_CONFIG_COVERING_INDEX_SCAN
SQLITE_CONFIG_GETMALLOC
SQLITE_CONFIG_GETMUTEX
SQLITE_CONFIG_GETPCACHE
SQLITE_CONFIG_GETPCACHE2
SQLITE_CONFIG_HEAP
SQLITE_CONFIG_LOG
SQLITE_CONFIG_LOOKASIDE
SQLITE_CONFIG_MALLOC
SQLITE_CONFIG_MEMDB_MAXSIZE
SQLITE_CONFIG_MEMSTATUS
SQLITE_CONFIG_MMAP_SIZE
SQLITE_CONFIG_MULTITHREAD
SQLITE_CONFIG_MUTEX
SQLITE_CONFIG_PAGECACHE
SQLITE_CONFIG_PCACHE
SQLITE_CONFIG_PCACHE2
SQLITE_CONFIG_PCACHE_HDRSZ
SQLITE_CONFIG_PMASZ
SQLITE_CONFIG_ROWID_IN_VIEW
SQLITE_CONFIG_SCRATCH
SQLITE_CONFIG_SERIALIZED
SQLITE_CONFIG_SINGLETHREAD
SQLITE_CONFIG_SMALL_MALLOC
SQLITE_CONFIG_SORTERREF_SIZE
SQLITE_CONFIG_SQLLOG
SQLITE_CONFIG_STMTJRNL_SPILL
SQLITE_CONFIG_URI
SQLITE_CONFIG_WIN32_HEAPSIZE
SQLITE_CONSTRAINT
SQLITE_CONSTRAINT_CHECK
SQLITE_CONSTRAINT_COMMITHOOK
SQLITE_CONSTRAINT_DATATYPE
SQLITE_CONSTRAINT_FOREIGNKEY
SQLITE_CONSTRAINT_FUNCTION
SQLITE_CONSTRAINT_NOTNULL
SQLITE_CONSTRAINT_PINNED
SQLITE_CONSTRAINT_PRIMARYKEY
SQLITE_CONSTRAINT_ROWID
SQLITE_CONSTRAINT_TRIGGER
SQLITE_CONSTRAINT_UNIQUE
SQLITE_CONSTRAINT_VTAB
SQLITE_COPY
SQLITE_CORRUPT
SQLITE_CORRUPT_INDEX
SQLITE_CORRUPT_SEQUENCE
SQLITE_CORRUPT_VTAB
SQLITE_CREATE_INDEX
SQLITE_CREATE_TABLE
SQLITE_CREATE_TEMP_INDEX
SQLITE_CREATE_TEMP_TABLE
SQLITE_CREATE_TEMP_TRIGGER
SQLITE_CREATE_TEMP_VIEW
SQLITE_CREATE_TRIGGER
SQLITE_CREATE_VIEW
SQLITE_CREATE_VTABLE
SQLITE_DBCONFIG_DEFENSIVE
SQLITE_DBCONFIG_DQS_DDL
SQLITE_DBCONFIG_DQS_DML
SQLITE_DBCONFIG_ENABLE_ATTACH_CREATE
SQLITE_DBCONFIG_ENABLE_ATTACH_WRITE
SQLITE_DBCONFIG_ENABLE_COMMENTS
SQLITE_DBCONFIG_ENABLE_FKEY
SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER
SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION
SQLITE_DBCONFIG_ENABLE_QPSG
SQLITE_DBCONFIG_ENABLE_TRIGGER
SQLITE_DBCONFIG_ENABLE_VIEW
SQLITE_DBCONFIG_LEGACY_ALTER_TABLE
SQLITE_DBCONFIG_LEGACY_FILE_FORMAT
SQLITE_DBCONFIG_LOOKASIDE
SQLITE_DBCONFIG_MAINDBNAME
SQLITE_DBCONFIG_MAX
SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE
SQLITE_DBCONFIG_RESET_DATABASE
SQLITE_DBCONFIG_REVERSE_SCANORDER
SQLITE_DBCONFIG_STMT_SCANSTATUS
SQLITE_DBCONFIG_TRIGGER_EQP
SQLITE_DBCONFIG_TRUSTED_SCHEMA
SQLITE_DBCONFIG_WRITABLE_SCHEMA
SQLITE_DBSTATUS_CACHE_HIT
SQLITE_DBSTATUS_CACHE_MISS
SQLITE_DBSTATUS_CACHE_SPILL
SQLITE_DBSTATUS_CACHE_USED
SQLITE_DBSTATUS_CACHE_USED_SHARED
SQLITE_DBSTATUS_CACHE_WRITE
SQLITE_DBSTATUS_DEFERRED_FKS
SQLITE_DBSTATUS_LOOKASIDE_HIT
SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
SQLITE_DBSTATUS_LOOKASIDE_USED
SQLITE_DBSTATUS_MAX
SQLITE_DBSTATUS_SCHEMA_USED
SQLITE_DBSTATUS_STMT_USED
SQLITE_DELETE
SQLITE_DENY
SQLITE_DESERIALIZE_FREEONCLOSE
SQLITE_DESERIALIZE_READONLY
SQLITE_DESERIALIZE_RESIZEABLE
SQLITE_DETACH
SQLITE_DETERMINISTIC
SQLITE_DIRECTONLY
SQLITE_DONE
SQLITE_DROP_INDEX
SQLITE_DROP_TABLE
SQLITE_DROP_TEMP_INDEX
SQLITE_DROP_TEMP_TABLE
SQLITE_DROP_TEMP_TRIGGER
SQLITE_DROP_TEMP_VIEW
SQLITE_DROP_TRIGGER
SQLITE_DROP_VIEW
SQLITE_DROP_VTABLE
SQLITE_EMPTY
SQLITE_ERROR
SQLITE_ERROR_MISSING_COLLSEQ
SQLITE_ERROR_RETRY
SQLITE_ERROR_SNAPSHOT
SQLITE_FAIL
SQLITE_FCNTL_BEGIN_ATOMIC_WRITE
SQLITE_FCNTL_BUSYHANDLER
SQLITE_FCNTL_CHUNK_SIZE
SQLITE_FCNTL_CKPT_DONE
SQLITE_FCNTL_CKPT_START
SQLITE_FCNTL_CKSM_FILE
SQLITE_FCNTL_COMMIT_ATOMIC_WRITE
SQLITE_FCNTL_COMMIT_PHASETWO
SQLITE_FCNTL_DATA_VERSION
SQLITE_FCNTL_EXTERNAL_READER
SQLITE_FCNTL_FILE_POINTER
SQLITE_FCNTL_GET_LOCKPROXYFILE
SQLITE_FCNTL_HAS_MOVED
SQLITE_FCNTL_JOURNAL_POINTER
SQLITE_FCNTL_LAST_ERRNO
SQLITE_FCNTL_LOCKSTATE
SQLITE_FCNTL_LOCK_TIMEOUT
SQLITE_FCNTL_MMAP_SIZE
SQLITE_FCNTL_NULL_IO
SQLITE_FCNTL_OVERWRITE
SQLITE_FCNTL_PDB
SQLITE_FCNTL_PERSIST_WAL
SQLITE_FCNTL_POWERSAFE_OVERWRITE
SQLITE_FCNTL_PRAGMA
SQLITE_FCNTL_RBU
SQLITE_FCNTL_RESERVE_BYTES
SQLITE_FCNTL_RESET_CACHE
SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE
SQLITE_FCNTL_SET_LOCKPROXYFILE
SQLITE_FCNTL_SIZE_HINT
SQLITE_FCNTL_SIZE_LIMIT
SQLITE_FCNTL_SYNC
SQLITE_FCNTL_SYNC_OMITTED
SQLITE_FCNTL_TEMPFILENAME
SQLITE_FCNTL_TRACE
SQLITE_FCNTL_VFSNAME
SQLITE_FCNTL_VFS_POINTER
SQLITE_FCNTL_WAL_BLOCK
SQLITE_FCNTL_WIN32_AV_RETRY
SQLITE_FCNTL_WIN32_GET_HANDLE
SQLITE_FCNTL_WIN32_SET_HANDLE
SQLITE_FCNTL_ZIPVFS
SQLITE_FLOAT
SQLITE_FORMAT
SQLITE_FULL
SQLITE_FUNCTION
SQLITE_GET_LOCKPROXYFILE
SQLITE_IGNORE
SQLITE_INDEX_CONSTRAINT_EQ
SQLITE_INDEX_CONSTRAINT_FUNCTION
SQLITE_INDEX_CONSTRAINT_GE
SQLITE_INDEX_CONSTRAINT_GLOB
SQLITE_INDEX_CONSTRAINT_GT
SQLITE_INDEX_CONSTRAINT_IS
SQLITE_INDEX_CONSTRAINT_ISNOT
SQLITE_INDEX_CONSTRAINT_ISNOTNULL
SQLITE_INDEX_CONSTRAINT_ISNULL
SQLITE_INDEX_CONSTRAINT_LE
SQLITE_INDEX_CONSTRAINT_LIKE
SQLITE_INDEX_CONSTRAINT_LIMIT
SQLITE_INDEX_CONSTRAINT_LT
SQLITE_INDEX_CONSTRAINT_MATCH
SQLITE_INDEX_CONSTRAINT_NE
SQLITE_INDEX_CONSTRAINT_OFFSET
SQLITE_INDEX_CONSTRAINT_REGEXP
SQLITE_INDEX_SCAN_HEX
SQLITE_INDEX_SCAN_UNIQUE
SQLITE_INNOCUOUS
SQLITE_INSERT
SQLITE_INTEGER
SQLITE_INTERNAL
SQLITE_INTERRUPT
SQLITE_IOCAP_ATOMIC
SQLITE_IOCAP_ATOMIC1K
SQLITE_IOCAP_ATOMIC2K
SQLITE_IOCAP_ATOMIC4K
SQLITE_IOCAP_ATOMIC8K
SQLITE_IOCAP_ATOMIC16K
SQLITE_IOCAP_ATOMIC32K
SQLITE_IOCAP_ATOMIC64K
SQLITE_IOCAP_ATOMIC512
SQLITE_IOCAP_BATCH_ATOMIC
SQLITE_IOCAP_IMMUTABLE
SQLITE_IOCAP_POWERSAFE_OVERWRITE
SQLITE_IOCAP_SAFE_APPEND
SQLITE_IOCAP_SEQUENTIAL
SQLITE_IOCAP_SUBPAGE_READ
SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN
SQLITE_IOERR
SQLITE_IOERR_ACCESS
SQLITE_IOERR_AUTH
SQLITE_IOERR_BEGIN_ATOMIC
SQLITE_IOERR_BLOCKED
SQLITE_IOERR_CHECKRESERVEDLOCK
SQLITE_IOERR_CLOSE
SQLITE_IOERR_COMMIT_ATOMIC
SQLITE_IOERR_CONVPATH
SQLITE_IOERR_CORRUPTFS
SQLITE_IOERR_DATA
SQLITE_IOERR_DELETE
SQLITE_IOERR_DELETE_NOENT
SQLITE_IOERR_DIR_CLOSE
SQLITE_IOERR_DIR_FSYNC
SQLITE_IOERR_FSTAT
SQLITE_IOERR_FSYNC
SQLITE_IOERR_GETTEMPPATH
SQLITE_IOERR_IN_PAGE
SQLITE_IOERR_LOCK
SQLITE_IOERR_MMAP
SQLITE_IOERR_NOMEM
SQLITE_IOERR_RDLOCK
SQLITE_IOERR_READ
SQLITE_IOERR_ROLLBACK_ATOMIC
SQLITE_IOERR_SEEK
SQLITE_IOERR_SHMLOCK
SQLITE_IOERR_SHMMAP
SQLITE_IOERR_SHMOPEN
SQLITE_IOERR_SHMSIZE
SQLITE_IOERR_SHORT_READ
SQLITE_IOERR_TRUNCATE
SQLITE_IOERR_UNLOCK
SQLITE_IOERR_VNODE
SQLITE_IOERR_WRITE
SQLITE_LAST_ERRNO
SQLITE_LIMIT_ATTACHED
SQLITE_LIMIT_COLUMN
SQLITE_LIMIT_COMPOUND_SELECT
SQLITE_LIMIT_EXPR_DEPTH
SQLITE_LIMIT_FUNCTION_ARG
SQLITE_LIMIT_LENGTH
SQLITE_LIMIT_LIKE_PATTERN_LENGTH
SQLITE_LIMIT_SQL_LENGTH
SQLITE_LIMIT_TRIGGER_DEPTH
SQLITE_LIMIT_VARIABLE_NUMBER
SQLITE_LIMIT_VDBE_OP
SQLITE_LIMIT_WORKER_THREADS
SQLITE_LOCKED
SQLITE_LOCKED_SHAREDCACHE
SQLITE_LOCKED_VTAB
SQLITE_LOCK_EXCLUSIVE
SQLITE_LOCK_NONE
SQLITE_LOCK_PENDING
SQLITE_LOCK_RESERVED
SQLITE_LOCK_SHARED
SQLITE_MISMATCH
SQLITE_MISUSE
SQLITE_MUTEX_FAST
SQLITE_MUTEX_RECURSIVE
SQLITE_MUTEX_STATIC_APP1
SQLITE_MUTEX_STATIC_APP2
SQLITE_MUTEX_STATIC_APP3
SQLITE_MUTEX_STATIC_LRU
SQLITE_MUTEX_STATIC_LRU2
SQLITE_MUTEX_STATIC_MAIN
SQLITE_MUTEX_STATIC_MASTER
SQLITE_MUTEX_STATIC_MEM
SQLITE_MUTEX_STATIC_MEM2
SQLITE_MUTEX_STATIC_OPEN
SQLITE_MUTEX_STATIC_PMEM
SQLITE_MUTEX_STATIC_PRNG
SQLITE_MUTEX_STATIC_VFS1
SQLITE_MUTEX_STATIC_VFS2
SQLITE_MUTEX_STATIC_VFS3
SQLITE_NOLFS
SQLITE_NOMEM
SQLITE_NOTADB
SQLITE_NOTFOUND
SQLITE_NOTICE
SQLITE_NOTICE_RBU
SQLITE_NOTICE_RECOVER_ROLLBACK
SQLITE_NOTICE_RECOVER_WAL
SQLITE_NULL
SQLITE_OK
SQLITE_OK_LOAD_PERMANENTLY
SQLITE_OK_SYMLINK
SQLITE_OPEN_AUTOPROXY
SQLITE_OPEN_CREATE
SQLITE_OPEN_DELETEONCLOSE
SQLITE_OPEN_EXCLUSIVE
SQLITE_OPEN_EXRESCODE
SQLITE_OPEN_FULLMUTEX
SQLITE_OPEN_MAIN_DB
SQLITE_OPEN_MAIN_JOURNAL
SQLITE_OPEN_MASTER_JOURNAL
SQLITE_OPEN_MEMORY
SQLITE_OPEN_NOFOLLOW
SQLITE_OPEN_NOMUTEX
SQLITE_OPEN_PRIVATECACHE
SQLITE_OPEN_READONLY
SQLITE_OPEN_READWRITE
SQLITE_OPEN_SHAREDCACHE
SQLITE_OPEN_SUBJOURNAL
SQLITE_OPEN_SUPER_JOURNAL
SQLITE_OPEN_TEMP_DB
SQLITE_OPEN_TEMP_JOURNAL
SQLITE_OPEN_TRANSIENT_DB
SQLITE_OPEN_URI
SQLITE_OPEN_WAL
SQLITE_PERM
SQLITE_PRAGMA
SQLITE_PREPARE_DONT_LOG
SQLITE_PREPARE_NORMALIZE
SQLITE_PREPARE_NO_VTAB
SQLITE_PREPARE_PERSISTENT
SQLITE_PROTOCOL
SQLITE_RANGE
SQLITE_READ
SQLITE_READONLY
SQLITE_READONLY_CANTINIT
SQLITE_READONLY_CANTLOCK
SQLITE_READONLY_DBMOVED
SQLITE_READONLY_DIRECTORY
SQLITE_READONLY_RECOVERY
SQLITE_READONLY_ROLLBACK
SQLITE_RECURSIVE
SQLITE_REINDEX
SQLITE_REPLACE
SQLITE_RESULT_SUBTYPE
SQLITE_ROLLBACK
SQLITE_ROW
SQLITE_SAVEPOINT
SQLITE_SCANSTAT_COMPLEX
SQLITE_SCANSTAT_EST
SQLITE_SCANSTAT_EXPLAIN
SQLITE_SCANSTAT_NAME
SQLITE_SCANSTAT_NCYCLE
SQLITE_SCANSTAT_NLOOP
SQLITE_SCANSTAT_NVISIT
SQLITE_SCANSTAT_PARENTID
SQLITE_SCANSTAT_SELECTID
SQLITE_SCHEMA
SQLITE_SELECT
SQLITE_SELFORDER1
SQLITE_SERIALIZE_NOCOPY
SQLITE_SESSION_CONFIG_STRMSIZE
SQLITE_SESSION_OBJCONFIG_ROWID
SQLITE_SESSION_OBJCONFIG_SIZE
SQLITE_SET_LOCKPROXYFILE
SQLITE_SHM_EXCLUSIVE
SQLITE_SHM_LOCK
SQLITE_SHM_NLOCK
SQLITE_SHM_SHARED
SQLITE_SHM_UNLOCK
SQLITE_SOURCE_ID
SQLITE_STATUS_MALLOC_COUNT
SQLITE_STATUS_MALLOC_SIZE
SQLITE_STATUS_MEMORY_USED
SQLITE_STATUS_PAGECACHE_OVERFLOW
SQLITE_STATUS_PAGECACHE_SIZE
SQLITE_STATUS_PAGECACHE_USED
SQLITE_STATUS_PARSER_STACK
SQLITE_STATUS_SCRATCH_OVERFLOW
SQLITE_STATUS_SCRATCH_SIZE
SQLITE_STATUS_SCRATCH_USED
SQLITE_STMTSTATUS_AUTOINDEX
SQLITE_STMTSTATUS_FILTER_HIT
SQLITE_STMTSTATUS_FILTER_MISS
SQLITE_STMTSTATUS_FULLSCAN_STEP
SQLITE_STMTSTATUS_MEMUSED
SQLITE_STMTSTATUS_REPREPARE
SQLITE_STMTSTATUS_RUN
SQLITE_STMTSTATUS_SORT
SQLITE_STMTSTATUS_VM_STEP
SQLITE_SUBTYPE
SQLITE_SYNC_DATAONLY
SQLITE_SYNC_FULL
SQLITE_SYNC_NORMAL
SQLITE_TESTCTRL_ALWAYS
SQLITE_TESTCTRL_ASSERT
SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS
SQLITE_TESTCTRL_BITVEC_TEST
SQLITE_TESTCTRL_BYTEORDER
SQLITE_TESTCTRL_EXPLAIN_STMT
SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS
SQLITE_TESTCTRL_FAULT_INSTALL
SQLITE_TESTCTRL_FIRST
SQLITE_TESTCTRL_FK_NO_ACTION
SQLITE_TESTCTRL_GETOPT
SQLITE_TESTCTRL_IMPOSTER
SQLITE_TESTCTRL_INTERNAL_FUNCTIONS
SQLITE_TESTCTRL_ISINIT
SQLITE_TESTCTRL_ISKEYWORD
SQLITE_TESTCTRL_JSON_SELFCHECK
SQLITE_TESTCTRL_LAST
SQLITE_TESTCTRL_LOCALTIME_FAULT
SQLITE_TESTCTRL_LOGEST
SQLITE_TESTCTRL_NEVER_CORRUPT
SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD
SQLITE_TESTCTRL_OPTIMIZATIONS
SQLITE_TESTCTRL_PARSER_COVERAGE
SQLITE_TESTCTRL_PENDING_BYTE
SQLITE_TESTCTRL_PRNG_RESET
SQLITE_TESTCTRL_PRNG_RESTORE
SQLITE_TESTCTRL_PRNG_SAVE
SQLITE_TESTCTRL_PRNG_SEED
SQLITE_TESTCTRL_RESERVE
SQLITE_TESTCTRL_RESULT_INTREAL
SQLITE_TESTCTRL_SCRATCHMALLOC
SQLITE_TESTCTRL_SEEK_COUNT
SQLITE_TESTCTRL_SORTER_MMAP
SQLITE_TESTCTRL_TRACEFLAGS
SQLITE_TESTCTRL_TUNE
SQLITE_TESTCTRL_USELONGDOUBLE
SQLITE_TESTCTRL_VDBE_COVERAGE
SQLITE_TEXT
SQLITE_TOOBIG
SQLITE_TRACE_CLOSE
SQLITE_TRACE_PROFILE
SQLITE_TRACE_ROW
SQLITE_TRACE_STMT
SQLITE_TRANSACTION
SQLITE_TXN_NONE
SQLITE_TXN_READ
SQLITE_TXN_WRITE
SQLITE_UPDATE
SQLITE_UTF8
SQLITE_UTF16
SQLITE_UTF16BE
SQLITE_UTF16LE
SQLITE_UTF16_ALIGNED
SQLITE_VERSION
SQLITE_VERSION_NUMBER
SQLITE_VTAB_CONSTRAINT_SUPPORT
SQLITE_VTAB_DIRECTONLY
SQLITE_VTAB_INNOCUOUS
SQLITE_VTAB_USES_ALL_SCHEMAS
SQLITE_WARNING
SQLITE_WARNING_AUTOINDEX
SQLITE_WIN32_DATA_DIRECTORY_TYPE
SQLITE_WIN32_TEMP_DIRECTORY_TYPE

Statics§

sqlite3_data_directory
sqlite3_temp_directory
sqlite3_version

Functions§

SQLITE_STATIC
SQLITE_TRANSIENT
code_to_str
sqlite3_aggregate_context
sqlite3_auto_extension
sqlite3_autovacuum_pages
sqlite3_backup_finish
sqlite3_backup_init
sqlite3_backup_pagecount
sqlite3_backup_remaining
sqlite3_backup_step
sqlite3_bind_blob
sqlite3_bind_blob64
sqlite3_bind_double
sqlite3_bind_int
sqlite3_bind_int64
sqlite3_bind_null
sqlite3_bind_parameter_count
sqlite3_bind_parameter_index
sqlite3_bind_parameter_name
sqlite3_bind_pointer
sqlite3_bind_text
sqlite3_bind_text64
sqlite3_bind_value
sqlite3_bind_zeroblob
sqlite3_bind_zeroblob64
sqlite3_blob_bytes
sqlite3_blob_close
sqlite3_blob_open
sqlite3_blob_read
sqlite3_blob_reopen
sqlite3_blob_write
sqlite3_busy_handler
sqlite3_busy_timeout
sqlite3_cancel_auto_extension
sqlite3_changes
sqlite3_changes64
sqlite3_clear_bindings
sqlite3_close
sqlite3_collation_needed
sqlite3_column_blob
sqlite3_column_bytes
sqlite3_column_count
sqlite3_column_database_name
sqlite3_column_decltype
sqlite3_column_double
sqlite3_column_int
sqlite3_column_int64
sqlite3_column_name
sqlite3_column_origin_name
sqlite3_column_table_name
sqlite3_column_text
sqlite3_column_type
sqlite3_column_value
sqlite3_commit_hook
sqlite3_compileoption_get
sqlite3_compileoption_used
sqlite3_complete
sqlite3_config
sqlite3_context_db_handle
sqlite3_create_collation_v2
sqlite3_create_filename
sqlite3_create_function_v2
sqlite3_create_module_v2
sqlite3_create_window_function
sqlite3_data_count
sqlite3_database_file_object
sqlite3_db_cacheflush
sqlite3_db_config
sqlite3_db_filename
sqlite3_db_handle
sqlite3_db_mutex
sqlite3_db_name
sqlite3_db_readonly
sqlite3_db_release_memory
sqlite3_db_status
sqlite3_declare_vtab
sqlite3_deserialize
sqlite3_drop_modules
sqlite3_enable_shared_cache
sqlite3_errcode
sqlite3_errmsg
sqlite3_error_offset
sqlite3_errstr
sqlite3_exec
sqlite3_expanded_sql
sqlite3_extended_errcode
sqlite3_extended_result_codes
sqlite3_file_control
sqlite3_filename_database
sqlite3_filename_journal
sqlite3_filename_wal
sqlite3_finalize
sqlite3_free
sqlite3_free_filename
sqlite3_free_table
sqlite3_get_autocommit
sqlite3_get_auxdata
sqlite3_get_clientdata
sqlite3_get_table
sqlite3_hard_heap_limit64
sqlite3_initialize
sqlite3_interrupt
sqlite3_is_interrupted
sqlite3_keyword_check
sqlite3_keyword_count
sqlite3_keyword_name
sqlite3_last_insert_rowid
sqlite3_libversion
sqlite3_libversion_number
sqlite3_limit
sqlite3_log
sqlite3_malloc
sqlite3_malloc64
sqlite3_memory_highwater
sqlite3_memory_used
sqlite3_mprintf
sqlite3_msize
sqlite3_mutex_alloc
sqlite3_mutex_enter
sqlite3_mutex_free
sqlite3_mutex_held
sqlite3_mutex_leave
sqlite3_mutex_notheld
sqlite3_mutex_try
sqlite3_next_stmt
sqlite3_open
sqlite3_open_v2
sqlite3_os_end
sqlite3_os_init
sqlite3_overload_function
sqlite3_prepare_v2
sqlite3_prepare_v3
sqlite3_preupdate_blobwrite
sqlite3_preupdate_count
sqlite3_preupdate_depth
sqlite3_preupdate_hook
sqlite3_preupdate_new
sqlite3_preupdate_old
sqlite3_progress_handler
sqlite3_randomness
sqlite3_realloc
sqlite3_realloc64
sqlite3_release_memory
sqlite3_reset
sqlite3_reset_auto_extension
sqlite3_result_blob
sqlite3_result_blob64
sqlite3_result_double
sqlite3_result_error
sqlite3_result_error_code
sqlite3_result_error_nomem
sqlite3_result_error_toobig
sqlite3_result_int
sqlite3_result_int64
sqlite3_result_null
sqlite3_result_pointer
sqlite3_result_subtype
sqlite3_result_text
sqlite3_result_text64
sqlite3_result_value
sqlite3_result_zeroblob
sqlite3_result_zeroblob64
sqlite3_rollback_hook
sqlite3_rtree_geometry_callback
sqlite3_rtree_query_callback
sqlite3_serialize
sqlite3_set_authorizer
sqlite3_set_auxdata
sqlite3_set_clientdata
sqlite3_set_last_insert_rowid
sqlite3_shutdown
sqlite3_sleep
sqlite3_snapshot_cmp
sqlite3_snapshot_free
sqlite3_snapshot_get
sqlite3_snapshot_open
sqlite3_snapshot_recover
sqlite3_snprintf
sqlite3_soft_heap_limit
sqlite3_soft_heap_limit64
sqlite3_sourceid
sqlite3_sql
sqlite3_status
sqlite3_status64
sqlite3_step
sqlite3_stmt_busy
sqlite3_stmt_explain
sqlite3_stmt_isexplain
sqlite3_stmt_readonly
sqlite3_stmt_scanstatus
sqlite3_stmt_scanstatus_reset
sqlite3_stmt_scanstatus_v2
sqlite3_stmt_status
sqlite3_str_append
sqlite3_str_appendall
sqlite3_str_appendchar
sqlite3_str_appendf
sqlite3_str_errcode
sqlite3_str_finish
sqlite3_str_length
sqlite3_str_new
sqlite3_str_reset
sqlite3_str_value
sqlite3_strglob
sqlite3_stricmp
sqlite3_strlike
sqlite3_strnicmp
sqlite3_system_errno
sqlite3_table_column_metadata
sqlite3_test_control
sqlite3_threadsafe
sqlite3_total_changes
sqlite3_total_changes64
sqlite3_trace_v2
sqlite3_txn_state
sqlite3_unlock_notify
sqlite3_update_hook
sqlite3_uri_boolean
sqlite3_uri_int64
sqlite3_uri_key
sqlite3_uri_parameter
sqlite3_user_data
sqlite3_value_blob
sqlite3_value_bytes
sqlite3_value_double
sqlite3_value_dup
sqlite3_value_encoding
sqlite3_value_free
sqlite3_value_frombind
sqlite3_value_int
sqlite3_value_int64
sqlite3_value_nochange
sqlite3_value_numeric_type
sqlite3_value_pointer
sqlite3_value_subtype
sqlite3_value_text
sqlite3_value_type
sqlite3_vfs_find
sqlite3_vfs_register
sqlite3_vfs_unregister
sqlite3_vtab_collation
sqlite3_vtab_config
sqlite3_vtab_distinct
sqlite3_vtab_in
sqlite3_vtab_in_first
sqlite3_vtab_in_next
sqlite3_vtab_nochange
sqlite3_vtab_on_conflict
sqlite3_vtab_rhs_value
sqlite3_wal_autocheckpoint
sqlite3_wal_checkpoint
sqlite3_wal_checkpoint_v2
sqlite3_wal_hook
sqlite3_win32_set_directory
sqlite3_win32_set_directory8
sqlite3changegroup_add
sqlite3changegroup_add_change
sqlite3changegroup_add_strm
sqlite3changegroup_delete
sqlite3changegroup_new
sqlite3changegroup_output
sqlite3changegroup_output_strm
sqlite3changegroup_schema
sqlite3changeset_apply
sqlite3changeset_apply_strm
sqlite3changeset_apply_v2
sqlite3changeset_apply_v2_strm
sqlite3changeset_concat
sqlite3changeset_concat_strm
sqlite3changeset_conflict
sqlite3changeset_finalize
sqlite3changeset_fk_conflicts
sqlite3changeset_invert
sqlite3changeset_invert_strm
sqlite3changeset_new
sqlite3changeset_next
sqlite3changeset_old
sqlite3changeset_op
sqlite3changeset_pk
sqlite3changeset_start
sqlite3changeset_start_strm
sqlite3changeset_start_v2
sqlite3changeset_start_v2_strm
sqlite3changeset_upgrade
sqlite3rebaser_configure
sqlite3rebaser_create
sqlite3rebaser_delete
sqlite3rebaser_rebase
sqlite3rebaser_rebase_strm
sqlite3session_attach
sqlite3session_changeset
sqlite3session_changeset_size
sqlite3session_changeset_strm
sqlite3session_config
sqlite3session_create
sqlite3session_delete
sqlite3session_diff
sqlite3session_enable
sqlite3session_indirect
sqlite3session_isempty
sqlite3session_memory_used
sqlite3session_object_config
sqlite3session_patchset
sqlite3session_patchset_strm
sqlite3session_table_filter

Type Aliases§

fts5_extension_function
sqlite3_callback
sqlite3_destructor_type
sqlite3_filename
sqlite3_int64
sqlite3_rtree_dbl
sqlite3_syscall_ptr
sqlite3_uint64
sqlite_int64
sqlite_uint64