Стандартная библиотека
Документация описывает зафиксированный объём экспериментального предварительного выпуска v0.0.18. Фактическая публикация и файлы загрузки указаны в GitHub Releases. Эти основные точки входа сверены с исходным кодом; это не исчерпывающий справочник API. Поведение определяет контракт синтаксиса. Ограничения бэкендов приведены в матрице поддержки.
Импорт модулей
Раздел «Импорт модулей»import fs from "std.fs"import json from "std.json"import { http, time } from "std"fs, http, config, task, pg, redis, mysql, bytes и net требуют явного импорта. Некоторые исторические модули всё ещё можно вызывать напрямую; новые примеры предпочитают явный импорт для ясности зависимостей. std.task — внутреннее пространство имён наблюдения и нагрузочных испытаний, а не прикладной API конкурентного выполнения.
| Модуль | Назначение | Ограничения |
|---|---|---|
std.string / методы строк |
Длина Unicode, длина в байтах, поиск, срезы | Нативные trim/lower/upper не имеют реализации Unicode |
std.array / методы массивов |
Длина, поиск, новые массивы, map | Ошибка прямой индексации отличается от обрабатываемого try_get |
std.object |
Явное резервное значение при поиске через get_or |
Отсутствующий обычный индекс не даёт null по умолчанию |
| std.json | Строгое кодирование и декодирование JSON | Не поддерживается в нативных Task и LLVM |
std.fs |
Файлы, проверки существования, список каталога | Относительные пути разрешаются от каталога текущего исходного файла .ku |
std.time |
Время, даты, длительности, сон | Синхронные ожидания и ожидания Task используют разные пути выполнения |
std.http |
HTTP-клиенты, службы, ответы | Сохраняются различия бэкендов и жизненного цикла; это не полная универсальная сетевая реализация Task |
std.config |
Окружение и настройки | Не включайте реальные учётные данные в исходный код |
std.pg / std.redis / std.mysql |
Единообразные клиенты с ограниченными пулами | Только нативно; проверка реального сервера и ограничений TLS выполняется отдельно |
std.bytes / std.net |
Двоичные данные, TCP-клиент, необязательный TLS | Путь генерации нативного C; TLS требует соответствующего целевого пакета |
std.lexer / std.parser |
Вспомогательные средства отладки компилятора | Возвращают отладочные сводки, а не полные публичные структуры Token / AST |
Основные сигнатуры
Раздел «Основные сигнатуры»Это сигнатуры для документации. & обозначает поддерживаемый режим параметра только для чтения; T! — обрабатываемый результат:
len(&value:any): intstr(&value:any): strprintln(&value:any): nullstring.len(&text:str): intstring.byte_len(&text:str): intstring.slice(text:str, start:int, end:int): str!array.len(&values:[T]): intarray.try_get(values:[T], index:int): T!fs.read(path:str): str!fs.write(path:str, text:str): null!fs.exists(path:str): boolfs.read_dir(path:str): [str]!"中😀".len() равно 2, а .byte_len() — 7. Длина считает скалярные значения Unicode; срезы используют индексы символов, а не байты UTF-8. array.push и array.concat возвращают новые массивы, не изменяя входные.
Чтение файла
Раздел «Чтение файла»import fs from "std.fs"
fn main(): null! { text = fs.read("message.txt")? println(text) return ok(null)}Сначала создайте UTF-8-файл message.txt рядом с исходным кодом. Отсутствующий файл или неудачное чтение возвращает ошибку. Пример зависит от этого входного файла. try_read и try_write остаются совместимыми псевдонимами с теми же типами результата.
read_dir возвращает отсортированные пути с независимым владением; пределы — 10 000 записей и 1 000 000 байт путей суммарно. Ограниченные файловые операции нативных Task используют фиксированный фоновый пул. Это не подтверждает универсальное сетевое ожидание через тот же механизм.
Поддержание справочника
Раздел «Поддержание справочника»Метаданные публичного интерфейса находятся в src/stdlib/metadata.rs. Они проверяются вместе с реализациями и контрактами. Этот сайт пока поддерживает вручную отобранный справочник; существующая команда ku doc не подтверждена.
API reference (English)
Раздел «API reference (English)»Detailed module references and runnable examples are currently available in English: