Référence de la bibliothèque opérationnelle
Cette page répertorie les packages seed ordinaires mis en scène par le compilateur opérationnel LLVM de seed/compiler/llvm/libs. Il ne traite pas chaque répertoire de l'arborescence de compatibilité Grove de niveau supérieur comme un package actuel.
Importer et créer un modèle
Les packages de base du référentiel utilisent des importations nues :
use "io"
use "parse"
use "vec"
L'incrément du lanceur build et run les chemins résolvent ces noms, construisent profile/target-compatible natif et .sdi artefacts et réutiliser les générations installées exactes. Le plus étroit check La sous-commande appelle actuellement la vérification directe de la source et ne prépare pas en premier un package nu manquant. Un explicite --static build sélectionne la correspondance statique seed dépendances; la liaison hébergée ordinaire utilise par défaut les artefacts dynamiques compatibles avec le profil.
La disponibilité reste limitée par le manifeste de chaque package et la matrice de capacités cibles canoniques. Un package présent dans l’arborescence source n’ajoute pas de services d’exécution à une cible qui en manque.
Catalogue de packages
| Forfait | Surface publique principale | Rôle |
|---|---|---|
box |
box_new, view, into_inner |
Indirection unique faillible pour les valeurs récursives ou grandes |
byte_buffer |
byte_buffer_new, reserve, push, extend, resize, into_bytes |
Construction d'octets initialisée en fonction de la capacité avec croissance faillible vérifiée |
fibonacci |
fibonacci_i64 |
Fibonacci itératif vérifié sans allocation renvoyant None pour une entrée négative ou un débordement |
file |
write_text, write_stdout, write_stderr, variantes de format |
Wrappers de compatibilité de sortie hébergés basés sur des descripteurs |
format |
bool_text, option_bool_text |
Petits assistants de format texte statique |
hkdf |
hkdf_extract, hkdf_expand |
Fonctions pseudo-aléatoires RFC 5869 HKDF-SHA256 (extraction + expansion) sur le hmac_sha256 primitif |
io |
input_stream, output_buffer, read/write/all et opérations de formatage |
Typé partiel et hébergé en mémoire tampon I/O avec io_error |
math |
sqrt_*, abs_*, min_*, max_* |
Portable en ligne f32/f64 opérations |
net |
open_ipv4_stream, socket |
Wrapper de socket de flux IPv4 hébergé minimal |
parse |
parse_i*, parse_u*, parse_*_or |
Analyse d'entiers vérifiée avec parse_error typé et valeurs par défaut explicites |
process |
current_id, argument_count, argument, environment, process_fork, process_exec_args, process_exec_args_with_environment, process_change_directory, process_wait |
Vues process/environment sans allocation et primitives de sous-processus hébergés limités |
serialize |
encode_bool, decode_bool |
Surface de sérialisation sûre et représentative minimale |
mobile |
liaisons de plateforme, cycle de vie, saisie, affichage, presse-papiers | Android API 21/29/37 ARM64 AVD et iOS 26.5 Exécution du simulateur ARM64 |
path_file |
file_descriptor, open, read, write, metadata |
Descripteurs de chemin d'accès détenus pour la séquence vérifiée I/O, renommage atomique et verrouillage consultatif |
slice |
slice_split_at_mut, marche arrière, rotation, aides aux fenêtres |
Algorithmes génériques sans allocation sur des tranches typées natives |
sort |
fonctions de tri scalaire et sort_by_key |
Tri par tranches mutables sur place, y compris l'envoi de clés statiques pour les valeurs de déplacement uniquement |
system |
wrappers d'adresses, tables de pages, MMIO, atomiques, allocation de bosses, pinned/DMA valeurs | Abstractions de systèmes autonomes auditées concernant des constructions explicitement dangereuses |
task |
canaux, jointures, résultats saisis, événements, annulations, groupes d'attente, sémaphores, barrières, verrous | Communication et synchronisation structurées basées sur un planificateur |
text |
utf8_next, utf8_count, utf8_validate, split_ascii |
Curseurs scalaires UTF-8 validation/counting sans allocation et jeton délimité par ASCII |
time |
monotonic_ms, wall_time_seconds, wall_time_ms |
Valeurs hébergées du temps écoulé et de l'horloge murale Unix |
tls13 |
tls13_core_seal/open, tls13_chacha_seal/open, tls13_record_pack/unpack, tls13_hkdf_expand_label, tls13_derive_secret, dérivation secret/key/iv trafic |
Pur-seed TLS 1.3 ChaCha20-Poly1305 AEAD, enregistrement protect/unprotect, et le calendrier des clés RFC 8446 §7 ; non handshake/X.509 encore |
vec |
vec, API de file d'attente, d'ensemble, de mappage et de mutation faillible |
Collections génériques avec nettoyage exact et vues vérifiées |
Packages d'application au niveau supérieur Grove l'arbre comprend std-uuid 0,2. Il fournit sans allocation UUID validation de texte, validation stricte RFC 9562 UUIDv7, déterministe uuid_v7_from_parts, et faillible uuid_v7 génération soutenue par des millisecondes d'horloge murale hébergées plus 74 bits du système d'exploitation audité entropy paquet. Les UUID restent des identifiants plutôt que des informations d'identification.
Conventions de propriété et d’erreur
Les packages opérationnels suivent le modèle de propriété du langage :
- les constructeurs qui allouent le retour
Result<T, alloc_error>ouAllocResult<T>; - les valeurs possédées déplacent et exécutent leur destructeur exactement une fois sur les sorties structurées ;
- emprunté
stret les résultats des tranches sont préservés receiver/input provenance; @mutles méthodes de réception détiennent des prêts exclusifs à portée d'appel et persistent les changements chez l'appelant ;- les assistants consommateurs explicites transfèrent la propriété plutôt que de cacher les clones ;
- la construction du pointeur brut reste
unsafe, même lorsque les méthodes ultérieures sont sûres parce que le wrapper préserve l'invariant audité ; - récupérable I/O et les échecs d'analyse utilisent les ADT du package plutôt que la sentinelle valeurs ou une terminaison implicite du processus.
I/O
Le nouveau code devrait préférer io aux wrappers de compatibilité file plus étroits. La distinction importante est la saisie partielle :
input_stream.read(mut []u8)renvoie un nombre data/EOF tapé ;stdin_read_all()est disponible lorsqu'il est souhaité de conserver l'intégralité de l'entrée ;- les opérations de sortie distinguent une écriture de
write_all; - La chaîne f
format_argspeut être écrite directement sans allouer de propriété. chaîne.
byte_buffer et io partagent le contrat de préfixe initialisé. Les appelants sûrs n’observent jamais la capacité disponible non initialisée.
Grove exécution de la commande
Le package Grove command fournit une exécution enfant basée sur argv limitée pour les applications hébergées. command_run_configured_with_stdin_file a le même contrat de répertoire de travail, d'environnement, de délai d'attente et de limite de capture que command_run_configured, et connecte en outre un fichier d'entrée standard existant à l'entrée standard de l'enfant. Le fichier est ouvert sans suivre un lien symbolique final et tous les descripteurs parent/child conservent un nettoyage exact. Ceci est utile pour les protocoles stdio limités tels que les serveurs de langage sans appeler de shell ni conserver une deuxième copie en mémoire de la requête encadrée.
Collections et tranches
vec<t> est la séquence générique canonique cultivable. Il fournit une capacité faillible et des opérations de poussée, vérifié update/pop, des vues en lecture seule et mutables et un nettoyage exact pour les éléments à déplacement uniquement. Les types de file d’attente, d’ensemble et de mappe utilisent le même modèle de propriété.
Natif []t et mut []t restent les types de séquence empruntés standard. Le slice le package ajoute des algorithmes ; indexation vérifiée, découpage, fill, copy_from, et split_at_mut sont des opérations de base plutôt qu'un ancien emballage de tranches de graisse brute.
Tâches
task est un package ordinaire, pas un ensemble de langages intégrés. Il fournit :
- canaux délimités à propriété partagée ;
- jointures ponctuelles saisies et résultats de tâches
Result<T, E>; - événements et annulations ;
- groupes d'attente, sémaphores, barrières et verrous.
Les points de terminaison et les tickets conservent leur linear/exact-cleanup contrats. Direct spawn reste structuré lexicalement, et postfix ? ne peut pas franchir la limite du corps engendré tant que ce corps ABI retours void.
Paquet de systèmes
system cibles déclarées profils autoportants. Les adresses brutes, les pointeurs MMIO, le stockage atomique, les tampons épinglés, les tampons DMA et le stockage de sauvegarde de l'allocateur sont créés via unsafe constructeurs. Les méthodes sûres reposent sur les obligations d’alignement, de durée de vie, d’espace d’adressage, de synchronisation et de propriété de ces constructeurs.
La présence de ce package n'implique pas que toutes les cibles hébergées ou autonomes fournissent tous les services système. Consultez System Primitives et la matrice cible Gate 14.
Grove inventaire des colis
Le plus haut niveau grove/libs/ corpus complété classification G01–G22 : 218 paquets manifestés sont couverts une seule fois par le Grove harnais de portail. Les packages portés exposent les interfaces actuelles élidées par les sources ; les paquets archivés exposent uniquement leurs éléments documentés validation/unavailability frontière. Voir Grove Arbre de compatibilité et Feuille de route de la bibliothèque.
Packages clients réseau opérationnels
| Forfait | Rôle | Limite actuelle |
|---|---|---|
std-url |
Absolu limité sans allocation-URL analyseur | Gammes de composants empruntés, IPv6 entre crochets, ports vérifiés ; non IDNA/relative résolution |
tls |
Possédé OpenSSL 3 server/client contextes et connexions | TLS 1,2 minimum ; certificat client et hostname/IP vérification plus délai d'expiration de la prise de contact tapé ; macOS Exécution ARM64 et Linux AArch64 construction croisée |
http-client |
Pur-seed HTTP/1.1 client (non OpenSSL): GET via TCP brut ou le tls13 transports |
Limites saisies (connect/io délais d'attente, head/header/body majuscules), Autorisation facultative, Content-Length/chunked/close-delimited encadrement, propriété délimitée Location/Retry-After, blocage read() curseur et un pont de source audio pour la source de rappel du codec partagé ; DNS via le pur-seed dns package avec IPv4-littéral et localhost voies rapides; pas de cookies, de redirections, de décompression ou de pooling |
http-client-tls |
Mince pur-seed emballage préservant le TLS-contexte API (system/open/enabled, get_host_authority_authorized) fini http-client + tls13 |
Même pile TLS 1.3 vérifiée que l'e2e vérifié par le serveur ; vérification du nom d'hôte de la preuve CertificateVerify de possession de la clé ; la distribution du magasin racine du système reste une lacune documentée |
http-fetch |
Redirection limitée absolue HTTP/HTTPS URL composition sur le pur-seed clients | Résolution système IPv4, autorité explicite, gestion des références relatives et des segments de points, suppression des fragments, limite de redirection, rejet de rétrogradation HTTPS, autorisation HTTPS uniquement limitée aux redirections de même origine et exponentielle plafonnée par l'appelant retry/backoff pour les échecs GET transitoires ; pas d'annulation du résolveur, de cache ou de crochets de politique |
audio-network-source |
Adaptateur de propriété exacte d'un corps HTTP/HTTPS vers la source de rappel du codec partagé | HTTP getter pratique plus transfert de corps générique ; La stratégie retry/cache/live-stream reste au-dessus ; lien d'applications http_client_source.c pour le pont de rappel |
Les limites complètes et les preuves de cible sont enregistrées dans le G12 et G14 lignes de base.
Packages de mise à jour à distance de l'interface utilisateur adaptative opérationnelle
| Forfait | Rôle | Limite actuelle |
|---|---|---|
grove-ui-plugin-update |
Sélection de catalogue authentifié et mise à niveau des artefacts de plug-in transactionnels | Nouvelle tentative transitoire de trois tentatives, autorisation HTTPS de même origine, signed/fresh/monotonic catalogues, liaison exacte package-version, trust/permission contrôle en amont, historique des générations et informations exactes en option URL cache de secours |
grove-ui-plugin-remote-cache |
Cache opaque délimité pour les charges utiles des plugins distants | Racine existante sélectionnée par l'appelant, SHA-256 exact-URL clés, fichiers de pièces privées, verrous du système d'exploitation par entrée, synchronisation, remplacement atomique, fautes de frappe et plafond de 64 Mio ; tous les appels restent non fiables et nécessitent une revalidation de l'appelant |
grove-ui-plugin-trust-distribution |
Livraison HTTPS vérifiée d'enveloppes signées de politique de confiance | La vérification épinglée à la racine reste visible par l'application ; la solution de secours mise en cache est uniquement transitoire et seules les enveloppes déjà vérifiées sont stockées |
Le cache n'implémente pas le conditionnel HTTP validateurs, expiration, expulsion, quota partagé, cryptage ou maintenance en arrière-plan. Natif macOS ARM64, Linux x86-64, et Windows x86-64/Wine debug/release les preuves sont gelées par le mise à jour et trust-distribution lignes de base.
Ridge Forfaits v0.3
La pile de base de données locale Ridge v0.3 terminée est divisée en packages Grove ordinaires :
| Forfait | Rôle |
|---|---|
ridge |
B+Tree stockage, WAL, MVCC, contraintes, backup/recovery, l'intégrité et le vide |
ridge_sql |
Multicolonne délimitée SQL, transactions, index, planificateur, déversement, JSON, analyses et observabilité |
ridge_pgwire |
Serveur pgwire Loopback TLS/password et protocole étendu de texte délimité |
ridge_timeseries |
Clés temporelles composites persistantes, range/bucket/rate/retention/downsampling opérations |
ridge_fulltext |
Persistant normalisé terms/positions, boolean/prefix/phrase recherche, sous-ensemble BM25, faits saillants |
ridge_vector |
Correction des vecteurs f32, top-k exact, HNSW persistant délimité, filtres, recall/memory limites |
ridge_ops |
Archive de limite de validation PITR, exercices de restauration, migrations, maintenance, health/metrics/logs/quotas |
Il s'agit de contrats limités de base de données locale, et non PostgreSQL services de parité ou de cluster. Voir Ridge Base de données et le Ridge document de capacité pour les formes et exclusions exactes prises en charge.
Sources de vérité
- source du package et manifestes :
seed/compiler/llvm/libs/*/; - opérations connues du compilateur : Core Built-ins et Standard Libraries;
- contrats de propriété : Propriété;
- mise en œuvre et limites cibles : Statut actuel.