組み込みクラスと標準ライブラリのメソッドレベルの完全リファレンスは NDA パートナー向けに各リリースに同梱される。本ページはどのクラスが存在するかの概観と該当 example へのポインタを示す。

Core

Array と String の at: / at:put: / indexOf: / copyFrom:to: などのインデックス系メソッドは Smalltalk 慣習に従い 1-based。at: 1 が最初の要素。

クラス概要
Integer, Float標準算術、factorial、negated、timesRepeat:、to:、to:do:、ビット演算、比較 (min: / max: は Comparable 由来)。整数のゼロ除算はトラップせず、捕捉可能なエラーを送出する
Boolean, True, FalseifTrue:、ifFalse:、ifTrue:ifFalse:、and:、or:、not
Stringバイト列であって文字列ではない — 'あ' size は 3、at: / copyFrom:to: はバイトを数えるので、任意の位置で切ると文字の途中で割れる。テキスト・ソケットのペイロード・エンコード済み blob が変換なしに同じ型になるのはこのため。String fromCodes: でバイトから組み立てる。スライス、concat:、asUppercase、asLowercase、trimmed、正規表現マッチ、lines、replaceAll:with:、<
Char文字述語と変換
Regexcompile: してから match:、matches:、findAll:、replaceAll:with:、split: (String の正規表現系はこれ経由でディスパッチ)
DateTimenow、parse:、fromMs:、y:m:d:h:min:s: (+ ms:)、formattedAs:、isoString、year … millisecond のフィールドアクセサ (ミリ秒精度)
ErrorError raise: で送出、Error try:onError: で捕捉 — ハンドラはメッセージ文字列を受け取る (例外型の階層は持たない)
Array永続 32-way trie、with:、at:、at:put:、size、sort:、indexOf:、,。`Array build: [:add
Dict永続 HAMT、new、from:、at:、at:put:、at:ifAbsent:、at:ifPresent:ifAbsent:、includesKey:、keys、size、associations、組み込みの do: / collect: / select: / reject:
SetArray 上に構築
Maybeパラメータ化された不在型、none、some:、ifPresent:ifAbsent:、isPresent
Blockvalue、value:、value:value: ... valueWithArguments:、whileTrue:
Classクラスメタ操作、リフレクション
ObjectprintNl、print、=、~=、asString、printOn:、className、isKindOf:、fieldNames、atField:、atField:put:、copyWith: (型付き不変更新 — フィールド名はクラス宣言に、値はフィールド型に対して検査される)、asObject、perform:、perform:withArgs:
WriteStreamprintOn: プロトコル経由でディスパッチする <<、nl、space、tab、position、isEmpty、reset
Comparable, Enumerableプロトコル制約付きミックスイン。Enumerable は組み込みの反復メソッドの上に乗るより広いプロトコル (sum、count:、detect:ifNone:、anySatisfy:、joinWith:、flatCollect:、min / max)

アクターと並行性

クラス概要
Actorself、spawn:、!、receive、receive:、receive:after:do:、ask:、monitor:、linkTo:、trapExits:。既に死んだアクターへの monitor: / linkTo: は登録を捨てずにその死を報告する。モニタもリンクも観測できない異常死は stderr に報告される
Futureawait、await:、resolved?、pending?、resolve:、fail:、new (手動生成)
Down, Exitアクター参照と失敗理由を運ぶモニタ / リンク失敗エンベロープ

サービス層

クラス概要
HTTP, HttpServer, HttpResponse, HttpRequestHTTP サーバはハンドラとしてブロックを取る。chunked と keepalive 対応。start:handler: / startGraceful:handler: は全インタフェースを、startHost:port:handler: / startGracefulHost:port:handler: は 1 つのローカルアドレスを束縛する。HttpRequest >> peerAddress はリクエストの送信元アドレス (送信元ごとのレート制限に要るもの。リバースプロキシの後ろではプロキシのアドレスになり、X-Forwarded-For を信じるかはアプリケーションの判断)。ファイルアップロード向けに HTTP parseMultipart:boundary: → MultipartPart (name / filename / contentType / bytes)
LpHttpClientHTTP クライアント — get:retries: / get:headers:retries:、post:body:contentType:retries: / post:body:contentType:headers:retries: → HttpResponse。https:// に到達でき、相手はシステムの証明書ストアで検証する。Host / Content-Length / Connection / Content-Type はクライアントが書き、呼び出し側からは拒否。ヘッダ名と値は検査され、信頼できない入力から組んだヘッダでリクエストを分割できない。接続後の応答待ちは 30 秒で打ち切る (LAMBDA_PRELUDE_HTTP_TIMEOUT_MS で変更) ので、ヘッダだけ返して黙るサーバが呼び出し側アクターを掴み続けることはない。Remote / grain の RPC 経路は http のみ
Smtpsmtp プラグイン (Plugin load: 'smtp') + stdlib の Smtp モジュール。Smtp send: conf to: addr subject: sub text: body で 1 通を 1 宛先へ送る。plain / STARTTLS / wrapped TLS、相手はシステムの証明書ストアで検証。件名は RFC 2047 encoded word、本文は base64 で送るので、送り手の書いた行が data を早く終わらせることはない。ハンドシェイクと全 read を 1 つの予算で見る (60 秒、LAMBDA_PRELUDE_SMTP_TIMEOUT_MS)。答え (SmtpResult) は拒否された段階を名指すので、パスワード違いと送信者拒否が区別できる
TCP, TCPSocket, TCPServerアクタースケジューラと統合された境界つきソケット I/O。listen: は全インタフェース、listenHost:port: は 1 つのローカルアドレスを束縛する。ホスト名解決はバックグラウンドの解決スレッドで走り connect も非ブロッキングなので、遅い DNS サーバも遅いハンドシェイクもドメインを止めない
TLS, TLSSocketTls.Engine 駆動、ハンドシェイク / read / write が I/O wait で待機
UDP, UDPSocket, UDPDatagramデータグラムソケット — bind: / bindHost:port:、sendTo:port:data:、receiveFrom / receiveFrom: (境界つき。期限を過ぎると raise)。受信した UDPDatagram は応答用に送信元 host / port を保持
WebSocketaccept:on:、isUpgrade:、readFrame:、writeText:to:、writeBinary:to:、writePong:to:、writeClose:
JSONparse:、serialize:
JsonRpcServer, JsonRpcClientJSON-RPC 2.0 ディスパッチ — 単一・バッチ・通知・エラーエンベロープ
RemoteRemote at:for:id: — JSON-RPC 越しのリモートクラスへのプロキシ。リテラルのクラスで構築すると対象クラスのプロトコルに対して型付けされる (非リテラルの for: は動的型付けのまま)。接続は呼び出しごとに張り直さず host:port ごとに再利用し、取り出した接続を相手が閉じていた場合は新しい接続で 1 度だけ再試行する
TeriosServer, ServiceDispatcher, ResTERIOS 方式の serviceName / requestDto / responseDto / errorInfoList エンベロープ

ランタイム

クラス概要
Fileread:、write:contents:、delete:、exists:、mkdirP:、removeDir: (空ディレクトリ)、rename:to:、listDir:、isDir:、isFile:
OSstdinLine、stdinAll、stdinPasswordLine (Windows コンソールおよび POSIX TTY でエコー抑制)、hostname、デフォルト付き環境変数。flush — printNl は行を終えて画面に渡すが print はどちらもしないので、print で書いたプロンプトは flush してから入力を待つ。時計 — time はカレンダー用の壁時計、monotonic (ms) と timeNs (ns) は単調時計で、経過時間と周期の測定に使う。サブプロセス & ウォッチドッグ — exec: / exec:input:、fire-and-forget な spawn: / spawn:output:、running: 生存確認、kill:、gracefulShutdown:
Log構造化ロギング (info:、warn:、error:、key-value フィールド)

データ

クラス概要
DB, DBConnection, DbRowSQLite (組み込み) — open:、exec:、exec:params:、query:、query:params:、close。データベースが拒否したステートメント (コンパイルできない、パラメータが合わない、制約に引っかかる) は Error try:onError: で捕捉できるエラーであってプロセスを終わらせず、接続はその後も使える。query: の各行は DbRow — 列は Maybe[String] として読み、asDict で Dict を取る側にそのまま渡せる
Postgres, PostgresConnectionDynlink プラグイン経由 PostgreSQL (インタプリタ / AOT)
Mariadb, MariadbConnectionDynlink プラグイン経由 MariaDB / MySQL (インタプリタ / AOT)
Redis, RedisConnectionDynlink プラグイン経由 Redis / Valkey (RESP2 over アクタースケジューラ統合 non-blocking TCP)、ping / get: / set:value: / set:value:ex: / del: / incr: / decr: / exists: / expire:seconds: / keys: / auth: / multi / exec / discard / cmd: / close
TORMDoma 互換 2-way SQL テンプレート + DAO / Entity マクロ DSL (dao: / entity: キーワード、imports: (Torm) で取り込むプラグイン)。dialect は PostgreSQL / MySQL / MariaDB / SQLite。DAO メソッドの答えは名前で決まる — count* はスカラー、exists* は Boolean、insert* / update* / delete* は影響行数、それ以外は行 — 名前にその接頭辞が無い文には { file: 'CreateUsers.sql', kind: #exec } と明示できる

暗号

クラス概要
HashSHA-256、SHA-512、HMAC-SHA-256 (hmacSha256:key:)
AesAES-256-GCM
Argon2Argon2id パスワード KDF (RFC 9106)、システム libargon2 経由
JWTsign / verify
RandomRandom hex: — ランダム hex 文字列
Base64encode: / decode: は標準アルファベット + パディング、encodeUrl: / decodeUrl: は URL-safe アルファベットでパディング無し。decode は読めない入力を拒否し、間違った答えを返さない

運用

クラス概要
LpCacheサイズ / TTL 制約付きインメモリキャッシュ組み込み (start:、at:、at:put:、at:put:ttl:)
LpChannelプロセス内 pub/sub。subscribe:do: / publish:message: / subscriberCount
Supervisormonitor: + spawn: 上の one-for-one / one-for-all / rest-for-one 戦略
Metricサービスレベル計測のための名前付きインメモリカウンタ
Testrun:do:、assert:、assert:message:、assertEqual:to:、fail:、summary

標準ライブラリモジュール

stdlib/ 配下に .lp ファイルとして同梱、module Main imports: (...) で読み込む。標準ライブラリは意図的に小さく保ち、以下が全モジュール。

コアプロトコル

サービスランタイム

コネクションプール (プラグイン — インタプリタ / AOT)

スーパーバイザ

TERIOS ツールキット (stdlib/terios/)

TORM ツールキット (stdlib/torm/)