gitlab.com/CoiaPrant/sqlite3@v1.19.1/doc.go (about)

     1  // Copyright 2017 The Sqlite Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Package sqlite is a sql/database driver using a CGo-free port of the C
     6  // SQLite3 library.
     7  //
     8  // SQLite is an in-process implementation of a self-contained, serverless,
     9  // zero-configuration, transactional SQL database engine.
    10  //
    11  // Thanks
    12  //
    13  // This project is sponsored by Schleibinger Geräte Teubert u. Greim GmbH by
    14  // allowing one of the maintainers to work on it also in office hours.
    15  //
    16  // Supported platforms and architectures
    17  //
    18  // These combinations of GOOS and GOARCH are currently supported
    19  //
    20  //	OS      Arch    SQLite version
    21  //	------------------------------
    22  //	darwin	amd64   3.39.3
    23  //	darwin	arm64   3.39.3
    24  //	freebsd	amd64   3.39.3
    25  //	freebsd	arm64   3.39.3
    26  //	linux	386     3.39.3
    27  //	linux	amd64   3.39.3
    28  //	linux	arm     3.39.3
    29  //	linux	arm64   3.39.3
    30  //	linux	riscv64 3.39.3
    31  //	windows	amd64   3.39.3
    32  //	windows	arm64   3.39.3
    33  //
    34  // Builders
    35  //
    36  // Builder results available at
    37  //
    38  //	https://modern-c.appspot.com/-/builder/?importpath=modernc.org%2fsqlite
    39  //
    40  // Changelog
    41  //
    42  // 2022-09-16 v1.19.0:
    43  //
    44  // Support frebsd/arm64.
    45  //
    46  // 2022-07-26 v1.18.0:
    47  //
    48  // Adds support for Go fs.FS based SQLite virtual filesystems, see function New
    49  // in gitlab.com/CoiaPrant/sqlite3/vfs and/or TestVFS in all_test.go
    50  //
    51  // 2022-04-24 v1.17.0:
    52  //
    53  // Support windows/arm64.
    54  //
    55  // 2022-04-04 v1.16.0:
    56  //
    57  // Support scalar application defined functions written in Go.
    58  //
    59  //  https://www.sqlite.org/appfunc.html
    60  //
    61  // 2022-03-13 v1.15.0:
    62  //
    63  // Support linux/riscv64.
    64  //
    65  // 2021-11-13 v1.14.0:
    66  //
    67  // Support windows/amd64. This target had previously only experimental status
    68  // because of a now resolved memory leak.
    69  //
    70  // 2021-09-07 v1.13.0:
    71  //
    72  // Support freebsd/amd64.
    73  //
    74  // Changelog
    75  //
    76  // 2021-06-23 v1.11.0:
    77  //
    78  // Upgrade to use sqlite 3.36.0, release notes at https://www.sqlite.org/releaselog/3_36_0.html.
    79  //
    80  // 2021-05-06 v1.10.6:
    81  //
    82  // Fixes a memory corruption issue
    83  // (https://gitlab.com/cznic/sqlite/-/issues/53).  Versions since v1.8.6 were
    84  // affected and should be updated to v1.10.6.
    85  //
    86  // 2021-03-14 v1.10.0:
    87  //
    88  // Update to use sqlite 3.35.0, release notes at https://www.sqlite.org/releaselog/3_35_0.html.
    89  //
    90  // 2021-03-11 v1.9.0:
    91  //
    92  // Support darwin/arm64.
    93  //
    94  // 2021-01-08 v1.8.0:
    95  //
    96  // Support darwin/amd64.
    97  //
    98  // 2020-09-13 v1.7.0:
    99  //
   100  // Support linux/arm and linux/arm64.
   101  //
   102  // 2020-09-08 v1.6.0:
   103  //
   104  // Support linux/386.
   105  //
   106  // 2020-09-03 v1.5.0:
   107  //
   108  // This project is now completely CGo-free, including the Tcl tests.
   109  //
   110  // 2020-08-26 v1.4.0:
   111  //
   112  // First stable release for linux/amd64.  The database/sql driver and its tests
   113  // are CGo free.  Tests of the translated sqlite3.c library still require CGo.
   114  //
   115  //	$ make full
   116  //
   117  //	...
   118  //
   119  //	SQLite 2020-08-14 13:23:32 fca8dc8b578f215a969cd899336378966156154710873e68b3d9ac5881b0ff3f
   120  //	0 errors out of 928271 tests on 3900x Linux 64-bit little-endian
   121  //	WARNING: Multi-threaded tests skipped: Linked against a non-threadsafe Tcl build
   122  //	All memory allocations freed - no leaks
   123  //	Maximum memory usage: 9156360 bytes
   124  //	Current memory usage: 0 bytes
   125  //	Number of malloc()  : -1 calls
   126  //	--- PASS: TestTclTest (1785.04s)
   127  //	PASS
   128  //	ok  	gitlab.com/CoiaPrant/sqlite3	1785.041s
   129  //	$
   130  //
   131  // 2020-07-26 v1.4.0-beta1:
   132  //
   133  // The project has reached beta status while supporting linux/amd64 only at the
   134  // moment. The 'extraquick' Tcl testsuite reports
   135  //
   136  //	630 errors out of 200177 tests on  Linux 64-bit little-endian
   137  //
   138  // and some memory leaks
   139  //
   140  //	Unfreed memory: 698816 bytes in 322 allocations
   141  //
   142  // 2019-12-28 v1.2.0-alpha.3: Third alpha fixes issue #19.
   143  //
   144  // It also bumps the minor version as the repository was wrongly already tagged
   145  // with v1.1.0 before.  Even though the tag was deleted there are proxies that
   146  // cached that tag. Thanks /u/garaktailor for detecting the problem and
   147  // suggesting this solution.
   148  //
   149  // 2019-12-26 v1.1.0-alpha.2: Second alpha release adds support for accessing a
   150  // database concurrently by multiple goroutines and/or processes. v1.1.0 is now
   151  // considered feature-complete. Next planed release should be a beta with a
   152  // proper test suite.
   153  //
   154  // 2019-12-18 v1.1.0-alpha.1: First alpha release using the new cc/v3, gocc,
   155  // qbe toolchain. Some primitive tests pass on linux_{amd64,386}. Not yet safe
   156  // for concurrent access by multiple goroutines. Next alpha release is planed
   157  // to arrive before the end of this year.
   158  //
   159  // 2017-06-10 Windows/Intel no more uses the VM (thanks Steffen Butzer).
   160  //
   161  // 2017-06-05 Linux/Intel no more uses the VM (cznic/virtual).
   162  //
   163  // Connecting to a database
   164  //
   165  // To access a Sqlite database do something like
   166  //
   167  //	import (
   168  //		"database/sql"
   169  //
   170  //		_ "gitlab.com/CoiaPrant/sqlite3"
   171  //	)
   172  //
   173  //	...
   174  //
   175  //
   176  //	db, err := sql.Open("sqlite", dsnURI)
   177  //
   178  //	...
   179  //
   180  // Debug and development versions
   181  //
   182  // A comma separated list of options can be passed to `go generate` via the
   183  // environment variable GO_GENERATE. Some useful options include for example:
   184  //
   185  //	-DSQLITE_DEBUG
   186  //	-DSQLITE_MEM_DEBUG
   187  //	-ccgo-verify-structs
   188  //
   189  // To create a debug/development version, issue for example:
   190  //
   191  //	$ GO_GENERATE=-DSQLITE_DEBUG,-DSQLITE_MEM_DEBUG go generate
   192  //
   193  // Note: To run `go generate` you need to have modernc.org/ccgo/v3 installed.
   194  //
   195  // Sqlite documentation
   196  //
   197  // See https://sqlite.org/docs.html
   198  package sqlite // import "gitlab.com/CoiaPrant/sqlite3"