| Name | Description |
|---|
| API.Google.Gemini | Google Gemini API client. Supports text generation, multimodal inputs (image, audio, video), chat sessions, function calling, and caching. Set GOOGLE_API_KEY before use. Compile with -lib gemini. |
| API.Google.Gemini.Corpus | Google Gemini corpus APIs (-lib gemini) |
| API.Google.Gemini.Tuning | Google Gemini support for tuned models (-lib gemini) |
| API.Inference | Client for HTTP model-inference servers. Sends tensors to a running server and reads tensors back, so a model trained in TensorFlow, PyTorch, ONNX or scikit-learn can be used from Objeck without a native binding for each runtime.
Two wire protocols, because no single one covers the field:
- OPEN_INFERENCE is the KServe v2 protocol, spoken by NVIDIA Triton, KServe, OpenVINO Model Server, Seldon MLServer and others. Triton alone serves TensorFlow, ONNX, PyTorch, TensorRT and OpenVINO behind it, so this one protocol reaches most servers and most runtimes. It is the default.
- TF_SERVING is TensorFlow Serving's own REST API, which does not implement KServe v2 and so needs its own request shape.
The difference is confined to Client: a Tensor is the same object either way. Choosing the protocol rather than the server is the whole point -- a client written against one server's API reaches one server.
This is a client, not a runtime. The server is a separate process the user runs; nothing here loads a model. For in-process inference without a server, API.Onnx runs models directly. Compile with -lib inference. |
| API.Models | The types an inference backend shares, so calling code names a backend once rather than at every call site.
`API.Onnx` runs a model in-process; `API.Inference` sends it to a server. They answer the same question and neither is right for every deployment: ONNX needs a model file and a runtime for the architecture, a server is the only GPU path today, and a model that will not convert to ONNX reaches Objeck no other way (docs/INFERENCE_ENGINES_PLAN.md).
This bundle exists because both previously defined their own `Tensor`. That was deliberate and temporary -- the generic ONNX run shipped before a shared library existed -- and two near-identical classes drift. They are one class now.
Compile with -lib models. |
| API.Ollama | Ollama local LLM client. Runs models (Llama, Mistral, Phi, etc.) locally via the Ollama server. Supports chat sessions, embeddings, and model management. Every request completes before returning -- responses are not streamed, so a long generation produces nothing until it finishes. Compile with -lib ollama. |
| API.Onnx | ONNX Runtime inference library for running pre-trained models. Supports object detection (YOLO), image classification (ResNet), segmentation (DeepLab), pose estimation (OpenPose), face recognition, and Phi-3 text generation. Compile with -lib onnx. |
| API.OpenAI | OpenAI API client. Supports Chat Completions (GPT-4o, o1, etc.), Embeddings, Image Generation (DALL-E), and function/tool calling. Set OPENAI_API_KEY environment variable before use. Compile with -lib openai. |
| API.OpenAI.Audio | Support for OpenAI audio APIs (-lib openai) |
| API.OpenAI.Chat | Support for legacy OpenAI chat APIs (-lib openai) |
| API.OpenAI.Responses | Support for OpenAI responses APIs (-lib openai) |
| API.OpenAI.Tuning | Support for fine-tuning models (-lib openai) |
| API.OpenCV | OpenCV computer vision library. Image supports loading, saving, resizing, color conversion, blurring, edge detection, cropping, and drawing. VideoCapture reads from files or camera streams. Compile with -lib opencv. |
| Cipher | Cryptographic utilities including AES-256 encryption/decryption, SHA-1/256/512 and MD5 hashing, HMAC signing, and Base64 encoding/decoding. Compile with -lib cipher. |
| Collection | Generic collections library: Vector (dynamic array), Map (hash map), Set, MultiMap, Stack, Queue, and Pair. Provides typed iteration, sorting, filtering, and functional operations (Reduce, Any, All). Compile with -lib gen_collect. |
| Collection.Tuple | Typed tuple classes (Pair, Triple, Quad) for grouping related values without defining a class. Immutable by design; use as map keys or return values. Compile with -lib gen_collect. |
| Data.CSV | CSV parsing and generation. CsvParser reads delimited text into typed rows and columns; CsvWriter builds CSV output. Supports custom delimiters and quoted fields. Compile with -lib csv. |
| Data.JSON | JSON parsing and building library. JsonParser reads JSON strings into a JsonElement tree; JsonBuilder constructs JSON documents using a stack-based API. Compile with -lib json. |
| Data.JSON.RPC | JSON-RPC 2.0 client and server. Client sends method calls to a remote endpoint and returns typed results; Server dispatches incoming requests to registered handlers. Compile with -lib json_rpc. |
| Data.JSON.Scheme | Support for e JSON Schema metadata (-lib json) |
| Data.JSON.Stream | Streaming JSON parser for processing large documents without loading the full tree into memory. Reads tokens sequentially via a cursor-based API. Compile with -lib json. |
| Data.XML | XML parsing and building library. XmlParser reads XML into an XmlElement tree with attribute and child-node navigation; XmlBuilder constructs XML documents. Compile with -lib xml. |
| Database.ODBC | ODBC database access layer. Connection manages database sessions; Statement and ParameterStatement execute SQL queries; ResultSet iterates over rows and extracts typed column values. Compile with -lib odbc. |
|
| Game.Framework | SDL2-based game framework with sprite management, collision detection, tilemaps, camera, and scene graph. Builds on sdl2.obl for structured 2D game development. Compile with -lib sdl2. |
| Game.OpenGL | OpenGL 3.3 core rendering on top of SDL2. Builds on sdl2.obl for the window and context; this bundle is the GL side. Compile with -lib sdl2.
Layers, thinnest first: GLWindow (window and context), GL (state), Shader, Mesh, Texture2D, Light, RenderTarget, Material, Frustum, ShadowMap, PointShadow, Overlay, Transform, and Box/Scene. All public, so nothing is capped.
Targets the 3.3 core profile, forward-compatible: the highest common denominator across the desktop platforms Objeck ships, since macOS caps at 4.1 core. GLES-only hardware is out of scope by construction.
See docs/opengl.md for setup, a minimal program, why the calls are coarse-grained, and how to add one. |
| Game.SDL2 | SDL2 multimedia library for 2D graphics, input handling, audio playback, and window management. Core types: Window, Renderer, Texture, Surface, Event, and Mixer. Compile with -lib sdl2. |
| Game.SDL2.Aux | MP3 encoding library wrapping LAME. Converts raw PCM audio data to MP3 byte streams. Suitable for audio recording and streaming applications. Compile with -lib lame. |
| Query.RegEx | Regular expression matching and replacement. RegEx compiles a pattern once and supports full match, substring search, capture groups, and global replacement. Included in lang.obl. |
| Query.Structured | In-memory object query engine. Table stores typed records and supports filtering, aggregation (sum, average), and CSV/filesystem import. Finder provides filesystem search. Compile with -lib query. |
| System | Core runtime library providing primitive types (Bool, Byte, Char, Int, Float, String), base collections, and system utilities. Every Objeck program links against this bundle automatically via lang.obl. |
| System.AI | Classic AI algorithms: graph search, adversarial game search, optimization and tabular reinforcement learning (-lib ai) |
| System.API | System API Bundle |
| System.Concurrency | System support for threads and runtime concurrency |
| System.Diagnostics | Static analysis and language-server support. Analyzer parses Objeck source files and returns symbols, diagnostics, hover info, completions, references, and definitions for IDE tooling. Compile with -lib diags. |
| System.IO | File and console I/O primitives. FileReader and FileWriter handle sequential file access; Console provides stdin/stdout operations. Included in lang.obl — no extra -lib flag needed. |
| System.IO.Filesystem | Supports filesystem operations |
| System.IO.Net | Provides network support |
| System.IO.Net.OAuth | OAuth client (-lib net_server) |
| System.Introspection | Allow programmers to introspect the runtime elements |
| System.ML | Core machine learning types: the seedable Random generator, Matrix2D linear algebra and activations, matrix reference holders, the NeuralNetwork and CSV-backed MatrixReader. Compile with -lib ml. |
| System.NLP | Natural language processing toolkit. Provides tokenization, text preprocessing, TF-IDF vectorization, cosine similarity, and sentiment analysis. Works with plain strings — no external model required. Compile with -lib nlp. |
| System.Time | Date, time, and elapsed-timer utilities. Date provides current date/time and arithmetic (AddDays, AddHours). Timer measures wall-clock elapsed time. Included in lang.obl. |
| System.Utility | Miscellaneous runtime utilities: UUID generation, date string parsing and formatting, command-line parameter handling, network time retrieval, and console spinner animations. Included in lang.obl. |
| Web.HTTP | Shared networking types used across all HTTP libraries: Url (parsing and construction), Response (status code, headers, body), Cookie, and WebDownloader for streaming downloads. Compile with -lib net. |
| Web.HTTP.Server | HTTP server framework. WebServer registers route handlers for GET/POST/PUT/DELETE, parses query params and multipart form data, and supports OAuth token exchange. Compile with -lib net_server. |
| Web.HTTP.Server.MCP | MCP server support (-lib net_server) |
| Web.RSS | RSS feed reader. RSSReader fetches and parses RSS 2.0 feeds from a URL or string; RSSChannel and RSSPost expose title, description, link, and publication date. Compile with -lib rss. |
| Web.Server | Lightweight embedded web server. Handles inbound HTTP requests with typed access to method, path, headers, and body; Response supports content-type, compression, redirects, and cookies. Compile with -lib net_server. |