glibsql/http

glibsql/http helps construct a gleam/http/request for use with the Hrana over HTTP variant of libSQL, simply pass the constructed HTTP request into your http client of choice.

Types

Error type for all possible errors returned by glibsql/http.

pub opaque type GlibsqlError

HttpRequest encapsulates everything needed to execute a Hrana over HTTP libSQL request.

see new_request() to construct this record.

pub opaque type HttpRequest

Statement wraps the supported types of requests. A series of ExecuteStatement(String)s can be applied and be conditionally followed with a CloseStatement to close a connection when you are done with it.

pub type Statement {
  ExecuteStatement(sql: String)
  CloseStatement
}

Constructors

  • ExecuteStatement(sql: String)

    ExecuteStatement contains a query that will be executed as written. There is no SQL-injection protection provided, this type of statement should be used with a query builder that can render the built query to a prepared string.

  • CloseStatement

    CloseStatment will either close the connection used in the current pipeline or will close the connection referenced by the request baton. Note: connections will be automatically closed by Turso after a 10s timeout.

Functions

pub fn build(
  request: HttpRequest,
) -> Result(Request(String), GlibsqlError)

Build the request using the previously provided values. Returns a gleam/http request suitable to be used in your HTTP client of choice.

pub fn clear_statements(request: HttpRequest) -> HttpRequest

Clear all statements from the request.

pub fn new_request() -> HttpRequest

Create a new Hrana over HTTP libSQL request.

Uses the builder pattern to construct everything necessary to send a request.

pub fn with_baton(
  request: HttpRequest,
  baton: String,
) -> HttpRequest

Set the baton from a previous connection to be reused.

pub fn with_database(
  request: HttpRequest,
  database: String,
) -> HttpRequest

Set the target database name. Calling this function multiple times will override the previous value.

Given a Turso databse URL like libsql://example-database-myorganization.turso.io The database name is “example-database”

pub fn with_host(
  request: HttpRequest,
  host: String,
) -> HttpRequest

Set the target database host. NOTE: this defaults to Turso’s turso.io Calling this function multiple times will override the previous value.

Given a Turso databse URL like libsql://example-database-myorganization.turso.io The host name is “turso.io”

pub fn with_organization(
  request: HttpRequest,
  organization: String,
) -> HttpRequest

Set the target database organization. Calling this function multiple times will override the previous value.

Given a Turso databse URL like libsql://example-database-myorganization.turso.io The database name is “myorganization”

pub fn with_path(
  request: HttpRequest,
  path: String,
) -> HttpRequest

Set the target database path on the host. NOTE: this defaults to Turso’s /v2/pipeline Calling this function multiple times will override the previous value.

pub fn with_statement(
  request: HttpRequest,
  statement: Statement,
) -> HttpRequest

Set a statement on the request. This function may be called multiple times, additional statements will be executed in order.

pub fn with_token(
  request: HttpRequest,
  token: String,
) -> HttpRequest

Set the Bearer token to access the database. Do not include Bearer . Calling this function multiple times will override the previous value.

Search Document