Object-oriented β’ JIT-compiled β’ AI-native β’ Robust APIs
Built for modern development:
- π JIT-compiled for performance (ARM64/AMD64)
- π€ AI-native: OpenAI, Gemini, Ollama, ONNX, OpenCV β no third-party packages
- π Network-complete: HTTP/1.1 Β· HTTP/2 Β· HTTP/3/QUIC Β· WebSocket Β· DTLS β all standard library
- π» Developer-friendly: REPL shell, LSP plugins for VSCode/Sublime/Kate, DAP debugger
- π Cross-platform: Linux, macOS, Windows (x64 + ARM64/RPI)
- π§ Full-featured: Threads, generics, closures, reflection, serialization
Perfect for: AI/ML prototyping β’ Computer vision β’ Web services β’ Real-time applications β’ Game development
ππ½ Playground β 33 demos across 7 categories, Monaco editor, no install required.
# Install (example for macOS/Linux)
curl -LO https://github.com/objeck/objeck-lang/releases/download/v2026.6.0/objeck-linux-x64_2026.6.0.tgz
tar xzf objeck-linux-x64_2026.6.0.tgz
export PATH=$PATH:./objeck-lang/bin
export OBJECK_LIB_PATH=./objeck-lang/lib
# Hello World
echo 'class Hello {
function : Main(args : String[]) ~ Nil {
"Hello World"->PrintLine();
}
}' > hello.obs
# Compile and run (modern syntax)
obc hello && obr helloπ Full docs: objeck.org π‘ Examples: github.com/objeck/objeck-lang/programs
- String interpolation β expressions, format specifiers, and
String->Formatβ"{$...}"now accepts arbitrary expressions ("{$i + 1}","{$a * b - c}","{$x > y}"), not just variables and method calls. Inline format specifiers use Python/.NET colon syntax for precision, width, alignment, and radix β"{$pi:.2}","{$n:05}","{$s:<10}","{$v:x}","{$v:b}"β and the newString->Format("{0} = {1}", a, b)adds positional templating with{{/}}escaping. See string features β - Generics β bounds, compound/F-bounds, and variance β type parameters gain compound bounds
T : A & B(a concrete argument must satisfy every bound), F-bounded constraintsT : Compare<T>, and declaration-site variance:out T(covariant, e.g.Producer<Dog>usable asProducer<Animal>) andin T(contravariant). Variance is checked soundly in both directions and preserved across the.obllibrary boundary; the stdlib's read-only iterators are now covariant. Existing invariant generics and syntax are unchanged (outstays a usable identifier), and generic type-mismatch errors now print readable types likeHash<String, IntRef> - Multithreaded garbage collection β the generational collector is now cooperative stop-the-world: mutator threads park at safepoints (interpreter dispatch, JIT loop back-edges on AMD64 and ARM64, allocation, and blocking
join/sleep/socket I/O) so the collector always marks a complete, stable root set. Fixes freed-live-object corruption and use-after-free under heavy thread churn, plus a JIT-loop collector deadlock; single-threaded programs never park - Debugger overhaul β command line and VS Code β the
obddebugger gains frame navigation (frame/up/down) withlocalsto inspect any caller's variables, live editing (set x = 5), breakpoints by method (b Class->Method), temporary and conditional breakpoints with ignore counts, data breakpoints (watch), and run-to-line (until). The VS Code adapter (DAP) adds editing variables from the panel, function breakpoints, logpoints, in-process restart, and exception breakpoints. CLI conditional breakpoints (b file:line if <expr>) now parse correctly, and variables after aFloatslot read the right value - Secure sockets verify certificates by default β TLS and DTLS clients (TCP, HTTP/2, HTTP/3, DTLS) now validate the certificate chain and hostname by default instead of accepting any certificate; set
OBJECK_TLS_INSECURE_SKIP_VERIFY=1to opt into self-signed/dev servers - Serialization correctness β 64-bit
Intvalues andInt[]elements (standalone and object-nested) no longer truncate to 32 bits or drop half the array; function-reference object fields now (de)serialize without desyncing the fields after them. Note: the serialized integer wire format widened to 8 bytes - Memory-safety hardening β object deserializers bounds-check attacker-supplied lengths/offsets and 64-bit sizes before reading; fixed a heap overflow in the
Char[]read traps (file/stdin/pipe/socket/SSL/DTLS) reachable from ordinary code via a large offset - Compiler fixes β constant propagation no longer keeps a stale literal after a slot is reassigned from a non-constant expression; LICM no longer hoists integer divide/modulo out of a zero-trip loop (which turned a never-evaluated division into a divide-by-zero trap)
- New
Web.Serverlibrary (-lib web_server) β a lightweight HTTP server bundle for simple request/response and multipart handling - ONNX β on macOS the compiled CoreML model is cached across runs (
~/Library/Caches/objeck-onnx), cutting cold session loads from seconds to milliseconds (~35Γ faster warm starts); fixed a danglingTypeInfothat could mis-detect a model's input dtype/shape - macOS launcher β portable app bundles now resolve their own location instead of trusting the working directory, so they launch correctly from Finder or any directory
- Reproducible builds β compiling unchanged library source now produces byte-identical
.oblfiles (deterministic anonymous-class naming), and Windows/ARM64 build warnings and aNativeCodeODR violation were cleared
- New
System.AIlibrary (-lib aior@ai) β classic AI in the standard library: graph search (Dijkstra,AStar,BreadthFirst,DepthFirst), adversarial game search (Minimaxwith alpha-beta,MonteCarloTreeSearch), metaheuristics (GeneticAlgorithm,SimulatedAnnealing,HillClimbing) and tabular RL (QLearning,Sarsa,MarkovDecisionProcessvalue iteration); all stochastic algorithms seeded for reproducible runs System.MLoverhaul β 13 new estimators (RidgeRegression/LassoRegression/ElasticNet,Perceptron,SVM,PCA,GaussianNaiveBayes,AdaBoost,DBSCAN,GaussianMixture,KDTree,RegressionTree,GradientBoostedTrees); real recursiveDecisionTreeand votingRandomForest; k-means++KMeans;NeuralNetworkhidden/output bias (clean XOR convergence); seedableSystem.ML.Random; uniformFit/Predict/Score/IsFitted/Store/LoadAPI across every estimator. Breaking:RandomForest->Trainis nowFit; storedNeuralNetworkmodel files must be regeneratedrecordtypes βrecord Point { @x : Int; @y : Int; }generates the constructor and accessors;record : readonly :omits setters and the compiler rejects field assignment outside constructors; supports generics, inheritance and user-defined member overrides- VM/JIT fix β traps reading interpreter locals (
Serializer->Write,Date->New, file-time queries) crashed once a method crossed the auto-JIT threshold; such methods now stay interpreted on AMD64 and ARM64 - Compiler fixes β bool array literals after the first in a program no longer receive the first literal's data (broken literal-pool comparator); literal dedup now works for all array types; array dimensions capped at 8 with a proper diagnostic
- XML library improvements β truncated/malformed documents are now rejected instead of parsing as success;
'decoding fixed; newEncodeText,SetEncodedContent,GetDecodedContentandGetDecodedValueconveniences - Library aliases documented β
-lib @std/@ml/@gameand the new@aigroup, user-editable vialib/configobjk.ini; AI/ML developer guide gainsSystem.MLandSystem.AIsections with runnable examples - CI hardening β vcpkg installs retry on transient CDN failures;
mcp_server_testvalidates JSON-RPC bodies before accepting
- Debugger test reliability β Windows CI debugger tests fixed;
.obe/.oblformat detection now correctly handles the edge case where a new-format size-header LSB collides with the0x78zlib CMF byte - LSP shell script permissions β all
tools/lsp/shell scripts now have execute bit set in git, fixingPermission deniedin release CI - Release workflow β
git checkout -f masterprevents dirty-tree abort when committingapi.zipfrom a tag-based build
π Full changelog β’ πΊοΈ Roadmap β’ π Editor & IDE setup
Latest Release: v2026.6.0
| Platform | Architecture | Download |
|---|---|---|
| Windows | x64 | MSI Installer / ZIP |
| Windows | ARM64 | MSI Installer / ZIP |
| Linux | x64 | TGZ Archive |
| Linux | ARM64 | TGZ Archive |
| macOS | ARM64 | TGZ Archive |
| LSP | All platforms | ZIP Archive |
π¦ Alternative: Sourceforge β’ π API Docs: objeck.org/api/latest
Note: All Windows installers are digitally signed. Releases are fully automated via CI/CD and built on GitHub Actions runners.
use Web.HTTP;
# Persistent connection β multiple requests share one TLS session
client := Http2Client->New("httpbin.org");
resp := client->Get("/get");
"Status: {$resp->GetCode()}"->PrintLine(); # Status: 200
body := "{\"lang\":\"objeck\"}"->ToByteArray();
resp2 := client->Post("/post", body, "application/json");
client->Close();
# One-liner for quick requests
resp := Http2Client->QuickGet(Url->New("https://httpbin.org/get"));use Web.HTTP;
# QUIC over UDP β zero round-trip connection on repeat visits
client := Http3Client->New("quic.nginx.org");
resp := client->Get("/");
"Status: {$resp->GetCode()}"->PrintLine(); # Status: 200
client->Close();
# One-liner
resp := Http3Client->QuickGet(Url->New("https://quic.nginx.org/"));# OpenAI Realtime API - get text AND audio
response := Realtime->Respond("How many James Bond movies?",
"gpt-4o-realtime-preview", token);
text := response->GetFirst();
audio := response->GetSecond();
Mixer->PlayPcm(audio->Get(), 22050, AudioFormat->SDL_AUDIO_S16LSB, 1);# SCRFD detector + ArcFace R50 embeddings (InsightFace buffalo_l)
session := FaceSession->New("det_10g.onnx", "w600k_r50.onnx");
r1 := session->Recognize(img1_bytes, 0.5);
r2 := session->Recognize(img2_bytes, 0.5);
faces1 := r1->GetResults(); faces2 := r2->GetResults();
sim := FaceSession->Compare(faces1[0]->GetEmbedding(), faces2[0]->GetEmbedding());
"Same person: {$(sim > 0.35)}"->PrintLine();# OpenCV face detection
detector := FaceDetector->New("haarcascade_frontalface_default.xml");
faces := detector->Detect(image);
faces->Size()->PrintLine(); # "5 faces detected"# Sentiment analysis and TF-IDF
text := "This product is absolutely wonderful!";
sentiment := SentimentAnalyzer->Classify(text); # "positive"
# Train TF-IDF on documents
docs := ["cats are pets", "dogs are pets", "birds can fly"];
tfidf := TF_IDF->New();
tfidf->Fit(docs);
vector := tfidf->Transform("cats and dogs"); # [0.47, 0.0, 0.47, ...]Object-Oriented
- Inheritance, interfaces, generics
- Type inference and boxing
- Reflection and dependency injection
- See OOP examples β
Functional
- Closures and lambda expressions
- First-class functions
- See functional examples β
Strings & Formatting
- Interpolation with expressions:
"{$i + 1}","{$obj->M()}" - Format specifiers:
"{$pi:.2}","{$n:05}","{$v:x}" - Positional templates:
String->Format("{0} = {1}", a, b) - See string features β
Platform Support
- Unicode, file I/O, sockets, named pipes
- Threading with mutexes
- See platform features β
AI & Machine Learning β π AI Developer Guide Β· GitHub source Β· π€ Getting Models
- OpenAI β chat, vision, realtime audio, image generation, embeddings, moderation, batch
- Gemini β chat, vision, search grounding, files, context caching, batch embeddings
- Ollama β local LLM chat, vision, and embeddings; recommended models:
llama3.2,phi3,llava(get models β) - NLP β tokenization, TF-IDF, text similarity, sentiment analysis
- OpenCV β computer vision: detection, transforms, video
- ONNX Runtime β local ML inference: YOLO, ResNet, DeepLab, OpenPose, Phi-3, face recognition (get models β)
- Face Recognition β SCRFD detector + ArcFace R50 (InsightFace buffalo_l)
- Phi-3 / Phi-3 Vision β local SLM text and multimodal inference
Web & Networking
- HTTP/1.1 server/client, OAuth
- HTTP/2 β multiplexed TLS client via nghttp2
- HTTP/3 / QUIC β UDP-based client via ngtcp2 + nghttp3
- RSS
Data
- JSON (hierarchical + streaming), XML, CSV
- SQL/ODBC, In-memory queries
- Collections
Other
Modern tooling and practices:
- π€ Claude Code for pair programming, debugging, and refactoring
- π CI/CD: Fully automated build, test, sign, and release pipeline (GitHub Actions)
- β Every push triggers multi-platform builds (Windows, Linux, macOS)
- β Automated code signing for Windows installers
- β
One-tag releases:
git tag v2026.2.1β automated distribution in 60 minutes - β Parallel builds across 6 platforms (x64/ARM64)
- π Release Process Documentation β’ CI/CD Architecture β’ System Architecture
- π Quality: Coverity static analysis + CodeQL security scanning
- π§ͺ Testing: 350+ tests across 3 suites (regression, comprehensive, deploy)
- Regression suite: 10 focused tests for critical functionality
- Comprehensive suite: 323+ tests for full language validation
- Deploy suite: 17 real-world usage examples
- Full cross-platform coverage (Windows/Linux/macOS, x64/ARM64)
Editor Support:
- LSP plugins for VSCode, Sublime, Kate, Neovim, Emacs, Helix, and more
- REPL for interactive development
- API docs at objeck.org
π Testing Documentation β’ π§ͺ Regression Tests β’ π Performance & Benchmarks
- π Documentation
- ποΈ Architecture β Mermaid diagrams covering compiler, VM, JIT, libraries, and CI/CD
- π― Examples
- π¬ Discussions
- π Issues