Перейти к содержимому
Русский

Стандартная библиотека

Документация описывает зафиксированный объём экспериментального предварительного выпуска 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): int
str(&value:any): str
println(&value:any): null
string.len(&text:str): int
string.byte_len(&text:str): int
string.slice(text:str, start:int, end:int): str!
array.len(&values:[T]): int
array.try_get(values:[T], index:int): T!
fs.read(path:str): str!
fs.write(path:str, text:str): null!
fs.exists(path:str): bool
fs.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 не подтверждена.