Categorygithub.com/mutablelogic/go-sqlite
repositorypackage
1.0.51
Repository: https://github.com/mutablelogic/go-sqlite.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

go-sqlite

This module provides an interface for sqlite, including:

  • Opening in-memory databases and persistent file-based databases;
  • Transactions (committing changes and rolling back on errors);
  • Adding custom functions, authentication and authorization;
  • Reflection on databases (schemas, tables, columns, indexes, etc);
  • Executing arbitrary statements or building statements programmatically;
  • A pool of connections to run sqlite in a highliy concurrent environment such as a webservice;
  • A backend REST API for sqlite;
  • A generalized importer to import data from other data sources in different formats;
  • A generalized file indexer to index files in a directory tree and provide a REST API to search them;
  • A frontend web application to explore and interact with databases.

Presently the module is in development and the API is subject to change.

If you want to...FolderDocumentation
Use the lower-level sqlite3 bindings similar to the C APIsys/sqlite3README.md
Use high-concurrency high-level interface including statement caching and connection poolpkg/sqlite3README.md
Implement or use a REST API to sqlite3plugin/sqlite3README.md
Develop or use a front-end web service to the REST API backendnpm/sqlite3README.md
Use an "object" interface to persist structured datapkg/sqobjREADME.md
Use a statement builder to programmatically write SQL statementspkg/langREADME.md
Implement a generalized data importer from CSV, JSON, Excel, etcpkg/importerREADME.md
Implement a search indexerpkg/indexerREADME.md
Tokenize SQL statements for syntax colouring (for example)pkg/tokenizerREADME.md
See example command-line toolscmdREADME.md

Requirements

  • go1.17 or later;
  • Tested on Debian Linux (32- and 64- bit) on ARM and macOS on x64 architectures.

Building

There are some examples in the cmd folder of the main repository on how to use the package. The various make targets are:

  • make all will perform tests, build all examples, the backend API and the frontend web application;
  • make test will perform tests;
  • make cmd will build example command-line tools into the build folder;
  • make server plugins will install the backend server and required plugins in the build folder;
  • make npm will compile the frontend web application in a 'dist' folder for each npm module located in the npm folder;
  • make clean will remove all build artifacts.

Contributing & Distribution

This module is currently in development and subject to change.

Please do file feature requests and bugs here. The license is Apache 2 so feel free to redistribute. Redistributions in either source code or binary form must reproduce the copyright notice, and please link back to this repository for more information:

Copyright (c) 2021, David Thorpe, All rights reserved.