Module: Quicopt

Defined in:
lib/quicopt.rb,
lib/quicopt/wire.rb,
lib/quicopt/model.rb,
lib/quicopt/client.rb,
lib/quicopt/version.rb

Overview

SPDX-License-Identifier: Apache-2.0 SPDX-FileCopyrightText: (c) 2026 Tim Bode, PGI-12, Forschungszentrum Jülich frozen_string_literal: true

Defined Under Namespace

Modules: Format, Operators, Wire Classes: Client, Constraint, Error, Expression, Job, Model, QuicoptError, Result, UnsupportedExpression, Variable

Constant Summary collapse

Program =

The wire IR container, re-exported so callers can inspect or route the bytes themselves rather than going through Client.

Wire::PB::Program
DEFAULT_BASE_URL =

The public Quicopt free-tier endpoint a Client targets when no base_url is given. Mirrors the Python and Julia clients' default, so every client reaches the same server out of the box.

"https://try.quicoptapi.pgi.fz-juelich.de"
SOURCE_LANGUAGE =

The modelling front-end this client authors with, sent as the source_language call tag. It names the front-end, not the language — the Ruby DSL is one front-end among the clients' several (+jump+, pyomo, pulp, mathopt), so it carries its own name here.

"quicopt-ruby"
KEY_PATH_ENV =

Environment variable overriding where the free key is cached. Point it at durable storage in an environment whose home directory does not survive the run (CI, containers), where the default location is wiped between sessions and every run would otherwise mint a fresh key.

"QUICOPT_KEY_PATH"
VERSION =

The gem version, tracking the client — not the wire schema, which is versioned separately by its protobuf package (quicopt.modeler.v1).

"0.1.0"

Class Method Summary collapse

Class Method Details

.decode(bytes) ⇒ Program

Parse wire bytes back into a Program.

Parameters:

  • bytes (String)

Returns:



46
47
48
# File 'lib/quicopt.rb', line 46

def decode(bytes)
  Wire.decode(bytes)
end

.encode(model) ⇒ String

Lower a model to wire bytes.

Parameters:

Returns:

  • (String)

    binary protobuf bytes



38
39
40
# File 'lib/quicopt.rb', line 38

def encode(model)
  Wire.encode(model)
end