Bibliothèque standard
Cette documentation décrit le périmètre figé de la préversion expérimentale v0.0.18. La publication effective et les téléchargements sont consignés dans GitHub Releases. Ces points d’entrée essentiels ont été vérifiés dans les sources ; il ne s’agit pas d’une référence API exhaustive. Le contrat syntaxique définit le comportement. Consultez la matrice de prise en charge pour les limites des backends.
Importer des modules
Section intitulée « Importer des modules »import fs from "std.fs"import json from "std.json"import { http, time } from "std"fs, http, config, task, pg, redis, mysql, bytes et net exigent des importations explicites. Certains modules historiques restent directement appelables ; les nouveaux exemples privilégient les importations explicites pour clarifier les dépendances. std.task est un espace de noms interne d’observation et de tests de charge, pas une API de concurrence applicative.
| Module | Rôle | Limites à retenir |
|---|---|---|
std.string / méthodes de chaîne |
Longueur Unicode, longueur en octets, recherche, découpage | trim/lower/upper natifs n’ont pas d’implémentation Unicode |
std.array / méthodes de tableau |
Longueur, recherche, nouveaux tableaux, map | L’échec d’un index direct diffère de try_get, récupérable |
std.object |
Recherche avec repli explicite via get_or |
Un index ordinaire absent ne vaut pas null par défaut |
| std.json | Encodage et décodage JSON stricts | Non pris en charge dans les Tasks natives et LLVM |
std.fs |
Fichiers, vérification d’existence, contenu de répertoires | Les chemins relatifs partent du répertoire du source .ku courant |
std.time |
Heure, dates, durées, sommeil | Les attentes synchrones et Task suivent des chemins d’exécution différents |
std.http |
Clients HTTP, services, réponses | Les différences de backend et de cycle de vie subsistent ; ce n’est pas une implémentation réseau Task générique complète |
std.config |
Environnement et configuration | Ne pas versionner de véritables identifiants dans le code |
std.pg / std.redis / std.mysql |
Clients unifiés avec pools bornés | Natifs uniquement ; validation sur serveur réel et limites TLS à vérifier séparément |
std.bytes / std.net |
Données binaires, client TCP, TLS facultatif | Chemin C natif généré ; TLS exige un paquet adapté à la cible |
std.lexer / std.parser |
Aides au débogage du compilateur | Renvoient des résumés de débogage, pas des structures publiques Token / AST complètes |
Signatures courantes
Section intitulée « Signatures courantes »Il s’agit de signatures documentaires. & désigne un mode de paramètre en lecture seule pris en charge ; T! désigne un résultat récupérable :
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() vaut 2 et .byte_len() vaut 7. La longueur compte les valeurs scalaires Unicode ; le découpage utilise des indices de caractères et non des octets UTF-8. array.push et array.concat renvoient de nouveaux tableaux sans modifier leurs entrées.
Lire un fichier
Section intitulée « Lire un fichier »import fs from "std.fs"
fn main(): null! { text = fs.read("message.txt")? println(text) return ok(null)}Créez d’abord un fichier UTF-8 message.txt à côté du source. Un fichier absent ou un échec de lecture renvoie une erreur. Cet exemple dépend de ce fichier d’entrée. try_read et try_write restent des alias compatibles ayant les mêmes types de résultat.
read_dir renvoie des chemins triés possédés indépendamment, dans la limite de 10 000 entrées et de 1 000 000 d’octets de chemins au total. Les opérations de fichiers du sous-ensemble natif Task restreint utilisent un pool fixe en arrière-plan. Cela n’établit pas une attente réseau générique via le même mécanisme.
Entretenir la référence
Section intitulée « Entretenir la référence »Les métadonnées d’interfaces publiques se trouvent dans src/stdlib/metadata.rs. Elles sont vérifiées avec les implémentations et les contrats. Ce site maintient actuellement une référence manuelle sélectionnée ; l’existence d’une commande ku doc n’a pas été confirmée.