組み込みクラスと標準ライブラリのメソッドレベルの完全リファレンスは 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, False | ifTrue:、ifFalse:、ifTrue:ifFalse:、and:、or:、not |
String | スライス、concat:、asUppercase、asLowercase、trimmed、正規表現マッチ、size、at:、lines、replaceAll:with:、< |
Char | 文字述語と変換 |
Regex | compile: してから match:、matches:、findAll:、replaceAll:with:、split: (String の正規表現系はこれ経由でディスパッチ) |
DateTime | now、parse:、fromMs:、y:m:d:h:min:s: (+ ms:)、formattedAs:、isoString、year … millisecond のフィールドアクセサ (ミリ秒精度) |
Error | Error raise: で送出、Error try:onError: で捕捉 — ハンドラはメッセージ文字列を受け取る (例外型の階層は持たない) |
Array | 永続 32-way trie、with:、at:、at:put:、size、do:、collect:、select:、inject:into:、sort:、indexOf:、, |
Dict | 永続 HAMT、new、from:、at:、at:put:、at:ifAbsent:、at:ifPresent:ifAbsent:、includesKey:、keys、size、associations、反復 |
Set | Array 上に構築 |
Maybe | パラメータ化された不在型、none、some:、ifPresent:ifAbsent:、isPresent |
Block | value、value:、value:value: ... valueWithArguments:、whileTrue: |
Class | クラスメタ操作、リフレクション |
Object | printNl、print、=、~=、asString、printOn:、className、isKindOf:、fieldNames、atField:、atField:put:、asObject、perform:、perform:withArgs: |
WriteStream | printOn: プロトコル経由でディスパッチする <<、nl、space、tab、position、isEmpty、reset |
Comparable, Enumerable | プロトコル制約付きミックスイン (Enumerable は detect: / anySatisfy: / min / max を含む) |
アクターと並行性
| クラス | 概要 |
|---|---|
Actor | self、spawn:、!、receive、receive:、receive:after:do:、ask:、monitor:、linkTo:、trapExits: |
Future | await、await:、resolved?、pending?、resolve:、fail:、new (手動生成) |
Down, Exit | アクター参照と失敗理由を運ぶモニタ / リンク失敗エンベロープ |
サービス層
| クラス | 概要 |
|---|---|
HTTP, HttpServer, HttpResponse, HttpRequest | HTTP サーバはハンドラとしてブロックを取る。chunked と keepalive 対応。ファイルアップロード向けに HTTP parseMultipart:boundary: → MultipartPart (name / filename / contentType / bytes) |
LpHttpClient | HTTP クライアント — get:retries:、post:body:contentType:retries: → HttpResponse |
TCP, TCPSocket, TCPServer | アクタースケジューラと統合された境界つきソケット I/O |
TLS, TLSSocket | Tls.Engine 駆動、ハンドシェイク / read / write が I/O wait で待機 |
UDP, UDPSocket, UDPDatagram | データグラムソケット — bind: / bindHost:port:、sendTo:port:data:、receiveFrom / receiveFrom:。受信した UDPDatagram は応答用に送信元 host / port を保持 |
WebSocket | accept:on:、isUpgrade:、readFrame:、writeText:to:、writeBinary:to:、writePong:to:、writeClose: |
JSON | parse:、serialize: |
JsonRpcServer, JsonRpcClient | JSON-RPC 2.0 ディスパッチ — 単一・バッチ・通知・エラーエンベロープ |
Remote | Remote at:for:id: — JSON-RPC 越しのリモートクラスへのプロキシ。リテラルのクラスで構築すると対象クラスのプロトコルに対して型付けされる (非リテラルの for: は動的型付けのまま) |
TeriosServer, ServiceDispatcher, Res | TERIOS 方式の serviceName / requestDto / responseDto / errorInfoList エンベロープ |
ランタイム
| クラス | 概要 |
|---|---|
File | read:、write:contents:、delete:、exists:、mkdirP:、rename:to:、listDir:、isDir:、isFile: |
OS | stdinLine、stdinAll、stdinPasswordLine (Windows コンソールおよび POSIX TTY でエコー抑制)、hostname、デフォルト付き環境変数。サブプロセス & ウォッチドッグ — exec: / exec:input:、fire-and-forget な spawn: / spawn:output:、running: 生存確認、kill:、gracefulShutdown: |
Log | 構造化ロギング (info:、warn:、error:、key-value フィールド) |
データ
| クラス | 概要 |
|---|---|
DB, DBConnection | SQLite (組み込み) — open:、exec:、exec:params:、query:、query:params:、close |
Postgres, PostgresConnection | Dynlink プラグイン経由 PostgreSQL (インタプリタ / AOT) |
Mariadb, MariadbConnection | Dynlink プラグイン経由 MariaDB / MySQL (インタプリタ / AOT) |
Redis, RedisConnection | Dynlink プラグイン経由 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 |
TORM | Doma 互換 2-way SQL テンプレート + DAO / Entity マクロ DSL (dao: / entity: キーワード) |
暗号
| クラス | 概要 |
|---|---|
Hash | SHA-256、SHA-512、HMAC-SHA-256 (hmacSha256:key:) |
Aes | AES-256-GCM |
Argon2 | Argon2id パスワード KDF (RFC 9106)、システム libargon2 経由 |
JWT | sign / verify |
Random | Random hex: — ランダム hex 文字列 |
運用
| クラス | 概要 |
|---|---|
LpCache | サイズ / TTL 制約付きインメモリキャッシュ組み込み (start:、at:、at:put:、at:put:ttl:) |
LpChannel | プロセス内 pub/sub。subscribe:do: / publish:message: / subscriberCount |
Supervisor | monitor: + spawn: 上の one-for-one / one-for-all / rest-for-one 戦略 |
Metric | サービスレベル計測のための名前付きインメモリカウンタ |
Test | run:do:、assert:、assert:message:、assertEqual:to:、fail:、summary |
標準ライブラリモジュール
stdlib/ 配下に .lp ファイルとして同梱、module Main imports: (...) で読み込む。標準ライブラリは意図的に小さく保ち、以下が全モジュール。
コアプロトコル
comparable.lp—<ベースのデフォルト (>/min:/max:等) を持つComparableプロトコルenumerable.lp—do:ベースのデフォルト (collect:/select:/inject:into:等) を持つEnumerableプロトコルset.lp—Arrayを裏に持つ永続Set、add:/remove:/includes:ordered_dict.lp— 反復時に挿入順を保つDictバリアントassociation.lp— (key, value) ペアオブジェクト。Dict>>associations/Dict>>associationsDo:の要素型
サービスランタイム
http.lp—HTTP組み込みの上に乗せる accept ループと keep-alive 対応コネクションハンドラjson_rpc.lp— JSON-RPC 2.0 サーバ / クライアント (single / batch / notification / error)lp_server.lp— LP サービスを 1 行で JSON-RPC 2.0 エンドポイントとして公開sse.lp— HTTP/1.1 chunked 上の Server-Sent Events ライタcache.lp— 容量 (LRU) と任意 TTL 付きのアクター所有 KV キャッシュgrain.lp— 仮想アクター (grain):GrainServer/GrainStore/RedisGrainStore、ディレクトリ+オーナ+リースによる単一活性化、フェンストークン付きクロスノードリース、差し替え可能ストア
コネクションプール (Dynlink プラグイン — インタプリタ / AOT)
postgres_pool.lp—postgresプラグイン上の固定サイズプール、withConn:APImariadb_pool.lp—mariadbプラグイン上の固定サイズプール (MariaDB / MySQL)redis_pool.lp—redisプラグイン上の固定サイズプール (Redis / Valkey)
スーパーバイザ
supervision.lp—monitor:+spawn:の上に乗せる one-for-one / one-for-all / rest-for-one 戦略
TERIOS ツールキット (stdlib/terios/)
terios/rpc.lp— TERIOS RPC エンベロープディスパッチ (serviceName/requestDto/responseDto/errorInfoList)terios/auth.lp— bearer トークン認証スカフォールド + HTTP ミドルウェアterios/transformer.lp— 宣言的 JSON 変形エンジン (DataTransformer 移植)terios/validators.lp— クラス宣言のvalidates:キーワード向けの宣言的バリデータ
TORM ツールキット (stdlib/torm/)
torm/entity_listener.lp—prePersist:/postLoad:系フックを持つEntityListenerプロトコルtorm/select_options.lp— Doma 方式の不変 SELECT オプション (ページング / ロックヒント)