Referência da Biblioteca Operacional
<!-- verified-against: seed-llvm; examples: docs-examples-test -->
Esta página cataloga os pacotes seed comuns preparados pelo compilador operacional LLVM de seed/compiler/llvm/libs. Ele não trata todos os diretórios da árvore de compatibilidade Grove de nível superior como um pacote atual.
Importar e construir modelo
Os pacotes principais do repositório usam importações simples:
use "io"
use "parse"
use "vec"
Os caminhos incrementais build e run do inicializador resolvem esses nomes, criam artefatos nativos profile/target-compatible e .sdi e reutilizam gerações instaladas exatas. O subcomando check mais restrito atualmente invoca a verificação direta da fonte e não prepara primeiro um pacote vazio ausente. Uma construção --static explícita seleciona dependências seed estáticas correspondentes; a vinculação hospedada comum usa os artefatos dinâmicos compatíveis com o perfil por padrão.
A disponibilidade permanece limitada pelo manifesto de cada pacote e pela matriz de capacidade de destino canônica. Um pacote presente na árvore de origem não adiciona serviços de tempo de execução a um destino que não os possui.
Catálogo de pacotes
| Pacote | Superfície pública principal | Função |
|---|---|---|
box |
box_new, view, into_inner |
Indireção de propriedade única falível para valores recursivos ou grandes |
byte_buffer |
byte_buffer_new, reserve, push, extend, resize, into_bytes |
Construção de bytes inicializados com reconhecimento de capacidade com crescimento falível verificado |
fibonacci |
fibonacci_i64 |
Fibonacci iterativo verificado sem alocação retornando None para entrada negativa ou estouro |
file |
write_text, write_stdout, write_stderr, variantes de formato |
Wrappers de compatibilidade de saída hospedados baseados em descritor |
format |
bool_text, option_bool_text |
Pequenos ajudantes em formato de texto estático |
io |
input_stream, output_buffer, read/write/all e operações de formato |
Digitado parcialmente e hospedado em buffer I/O com io_error |
math |
sqrt_*, abs_*, min_*, max_* |
Operações f32/f64 em linha portáteis |
net |
open_ipv4_stream, socket |
Wrapper de soquete de fluxo IPv4 de propriedade hospedado mínimo |
parse |
parse_i*, parse_u*, parse_*_or |
Análise de número inteiro verificada com parse_error digitado e padrões explícitos |
process |
current_id, argument_count, argument, environment, process_fork, process_exec_args, process_exec_args_with_environment, process_change_directory, process_wait |
Visualizações process/environment livres de alocação e primitivas de subprocesso hospedadas limitadas |
serialize |
encode_bool, decode_bool |
Superfície de serialização segura representativa mínima |
mobile |
ligações de plataforma, ciclo de vida, entrada, exibição, área de transferência | Android API 21/29/37 ARM64 AVD e iOS 26.5 Execução do simulador ARM64 |
path_file |
file_descriptor, open, read, write, metadata |
Descritores de arquivo de caminho de propriedade para sequencial verificado I/O, renomeação atômica e bloqueio consultivo |
slice |
slice_split_at_mut, reverter, girar, auxiliares de janela |
Algoritmos genéricos livres de alocação em fatias de tipo nativo |
sort |
funções de classificação escalar e sort_by_key |
Classificação de fatias mutáveis no local, incluindo envio de chave estática para valores somente de movimentação |
system |
wrappers de endereço, tabelas de páginas, MMIO, atômicos, alocação de bump, pinned/DMA valores | Abstrações de sistemas independentes auditados sobre construção insegura explícita |
task |
canais, junções, resultados digitados, eventos, cancelamento, grupos de espera, semáforos, barreiras, bloqueios | Comunicação e sincronização estruturadas apoiadas por agendador |
text |
utf8_next, utf8_count, utf8_validate, split_ascii, SplitToken.slice |
Livre de alocação UTF-8 escalar validation/counting e cursores de token delimitados por ASCII cujos tokens saem da visualização de origem |
time |
monotonic_ms, wall_time_seconds, wall_time_ms |
Valores de tempo decorrido hospedado e relógio de parede Unix |
vec |
vec, APIs de fila, conjunto, mapa e mutação falível |
Coleções genéricas de propriedade com limpeza exata e visualizações verificadas |
A tabela acima cobre os pacotes preparados a partir de seed/compiler/llvm/libs/. hkdf (hkdf_extract, hkdf_expand; RFC 5869 HKDF-SHA256) e tls13 (puro-seed TLS 1.3 ChaCha20-Poly1305 AEAD e o cronograma principal RFC 8446 §7) são Grove pacotes de dependência de caminho, não pacotes preparados pelo compilador.
Pacotes de aplicativos de nível superior Grove árvore inclui uuid 0,2. Ele fornece livre de alocação UUID validação de texto, validação estrita RFC 9562 UUIDv7, determinística uuid_v7_from_partse falível uuid_v7 geração apoiada por milissegundos de relógio hospedado mais 74 bits do sistema operacional auditado entropy pacote. Os UUIDs permanecem identificadores em vez de credenciais.
Convenções de propriedade e erro
Os pacotes operacionais seguem o modelo de propriedade do idioma:
- construtores que alocam o retorno
Result<T, alloc_error>ouAllocResult<T>; - os valores possuídos movem-se e executam seu destruidor exatamente uma vez nas saídas estruturadas;
- emprestado
stre os resultados da fatia preservam receiver/input proveniência; @mutmétodos receptores mantêm empréstimos exclusivos com escopo de chamada e persistem alterações no chamador;- ajudantes consumidores explícitos transferem propriedade em vez de esconder clones;
- a construção bruta do ponteiro permanece
unsafe, mesmo quando métodos posteriores são seguros porque o wrapper preserva a invariante auditada; - recuperável I/O e falhas de análise usam ADTs de pacote em vez de sentinela valores ou encerramento implícito do processo.
I/O
O novo código deve preferir io aos wrappers de compatibilidade file mais restritos. A distinção importante é a entrada parcial:
input_stream.read(mut []u8)retorna uma contagem data/EOF digitada;stdin_read_all()está disponível quando se deseja reter a entrada completa;- as operações de saída distinguem uma gravação de
write_all; - A string f
format_argspode ser escrita diretamente sem alocar uma propriedade corda.
byte_buffer e io compartilham o contrato de prefixo inicializado. Chamadores seguros nunca observam capacidade não inicializada sobressalente.
Grove execução de comando
O Grove command O pacote fornece execução infantil limitada baseada em argv para aplicativos hospedados. command_run_configured_with_stdin_file tem o mesmo diretório de trabalho, ambiente, tempo limite e contrato de limite de captura que command_run_configurede, adicionalmente, conecta um arquivo de entrada regular existente à entrada padrão do filho. O arquivo é aberto sem seguir um link simbólico final e todos parent/child os descritores mantêm a limpeza exata. Isso é útil para protocolos stdio limitados, como servidores de linguagem, sem invocar um shell ou reter uma segunda cópia na memória da solicitação emoldurada.
Coleções e fatias
vec<t> é a sequência genérica canônica que pode ser cultivada. Ele fornece capacidade falível e operações push, verificadas update/pop, visualizações somente leitura e mutáveis e limpeza exata para elementos somente movimentação. Os tipos de fila, conjunto e mapa usam o mesmo modelo de propriedade.
Nativo []t e mut []t permanecem os tipos de sequência emprestados padrão. O slice pacote adiciona algoritmos; indexação verificada, fatiamento, fill, copy_frome split_at_mut são operações principais, em vez de um invólucro herdado de fatias de gordura brutas.
Tarefas
task é um pacote comum, não um conjunto de linguagens integradas. Ele fornece:
- canais limitados de divisão de propriedade;
- digitou uniões únicas e
Result<T, E>resultados da tarefa; - eventos e cancelamento;
- grupos de espera, semáforos, barreiras e bloqueios.
Endpoints e tickets mantêm seus linear/exact-cleanup contratos. Direto spawn permanece lexicalmente estruturado e postfix ? não pode cruzar o limite do corpo gerado enquanto esse corpo ABI retorna void.
Pacote de sistemas
system alvos declarados perfis independentes. Endereços brutos, ponteiros MMIO, armazenamento atômico, buffers fixados, buffers DMA e armazenamento de apoio do alocador são criados por meio de unsafe construtores. Os métodos seguros dependem do alinhamento, vida útil, espaço de endereço, sincronização e obrigações de propriedade desses construtores.
A presença deste pacote não implica que todos os destinos hospedados ou independentes forneçam todos os serviços do sistema. Consulte System Primitives e a matriz de destino Gate 14.
Grove inventário de pacotes
O nível superior grove/libs/ corpus concluído Classificação G01–G22: a linha de base do inventário de 12/07/2026 cobriu 218 pacotes manifestados, cada um coberto exatamente uma vez pelo Grove arnês de portão; a árvore agora contém 334 diretórios de pacotes, todos com manifestos. Pacotes portados expõem interfaces atuais excluídas da origem; pacotes arquivados expõem apenas seus documentos documentados validation/unavailability limite. Veja Grove Árvore de compatibilidade e Roteiro da Biblioteca.
Pacotes de clientes de rede operacional
| Pacote | Função | Limite atual |
|---|---|---|
url |
Absoluto limitado sem alocação URL analisador | Intervalos de componentes emprestados, IPv6 entre colchetes, portas verificadas; não IDNA/relative resolução |
tls |
Possuído OpenSSL 3 server/client contextos e conexões | TLS 1,2 mínimo; certificado de cliente e hostname/IP verificação mais tempo limite de handshake digitado; macOS Execução ARM64 e Linux AArch64 construção cruzada |
http-client |
Puro-seed HTTP/1.1 cliente (não OpenSSL): GET sobre TCP bruto ou o tls13 transporte |
Limites digitados (connect/io tempos limite, head/header/body maiúsculos), Autorização opcional, Content-Length/chunked/close-delimited enquadramento, propriedade limitada Location/Retry-After, bloqueando read() cursor e uma ponte de fonte de áudio para a fonte de retorno de chamada do codec compartilhado; DNS através do puro-seed dns pacote com IPv4-literal e localhost caminhos rápidos; sem cookies, redirecionamentos, descompactação ou pooling |
http-client-tls |
Fino puro-seed embalagem preservando o TLS-contexto API (system/open/enabled, get_host_authority_authorized) acabou http-client + tls13 |
A mesma pilha TLS 1.3 verificada do e2e verificado pelo servidor; verificação do nome do host do CertificateVerify prova de posse da chave; a distribuição do armazenamento raiz do sistema continua sendo uma lacuna documentada |
http-fetch |
Redirecionamento limitado absoluto HTTP/HTTPS URL composição sobre o puro seed clientes | Resolução IPv4 do sistema, autoridade explícita, referência relativa e manipulação de segmento de ponto, remoção de fragmentos, limite de redirecionamento, rejeição de downgrade de HTTPS, autorização somente HTTPS confinada a redirecionamentos de mesma origem e retry/backoff exponencial limitado pelo chamador para falhas GET transitórias; sem cancelamento de resolvedor, cache ou ganchos de política |
audio-network-source |
Adaptador de propriedade exata de um corpo HTTP/HTTPS para a origem de retorno de chamada do codec compartilhado | HTTP getter de conveniência mais transferência genérica de corpo; retry/cache/live-stream a política permanece acima dela; link de aplicativos http_client_source.c para a ponte de retorno de chamada |
Os limites completos e as evidências da meta estão registrados no G12 e G14 linhas de base.
Pacotes de atualização remota de UI adaptável operacional
| Pacote | Função | Limite atual |
|---|---|---|
ui-plugin-update |
Seleção de catálogo autenticado e atualização de artefato de plug-in transacional | Nova tentativa transitória de três tentativas, autorização HTTPS de mesma origem, signed/fresh/monotonic catálogos, ligação exata da versão do pacote, trust/permission comprovação, histórico de geração e precisão opcional URL reserva de cache |
ui-plugin-remote-cache |
Cache opaco limitado para cargas úteis de plug-ins remotos | Raiz existente selecionada pelo chamador, SHA-256 exata-URL chaves, arquivos de partes privadas, bloqueios de sistema operacional por entrada, sincronização, substituição atômica, erros digitados e teto de 64 MiB; todos os hits permanecem não confiáveis e exigem revalidação do chamador |
ui-plugin-trust-distribution |
Entrega HTTPS verificada de envelopes de política de confiança assinados | A verificação fixada pela raiz permanece visível para o aplicativo; o fallback em cache é apenas transitório e apenas envelopes já verificados são armazenados |
O cache não implementa condicional HTTP validadores, expiração, despejo, cota compartilhada, criptografia ou manutenção em segundo plano. Nativo macOS ARM64, Linux x86-64 e Windows x86-64/Wine debug/release a evidência é congelada pelo atualização e distribuição de confiança linhas de base.
Ridge pacotes v0.3
A pilha de banco de dados local Ridge v0.3 completa é dividida em pacotes Grove comuns:
| Pacote | Função |
|---|---|
ridge |
B+Tree armazenamento, WAL, MVCC, restrições, backup/recovery, integridade e vácuo |
ridge_sql |
Multicoluna limitada SQL, transações, índices, planejador, derramamento, JSON, análise e observabilidade |
ridge_pgwire |
Servidor pgwire Loopback TLS/password e protocolo estendido de texto limitado |
ridge_timeseries |
Chaves de tempo compostas persistentes, range/bucket/rate/retention/downsampling operações |
ridge_fulltext |
Normalizado persistente terms/positions, boolean/prefix/phrase pesquisa, subconjunto BM25, destaques |
ridge_vector |
Vetores f32 corrigidos, top-k exato, HNSW persistente limitado, filtros, recall/memory limites |
ridge_ops |
Arquivo de limite de commit PITR, exercícios de restauração, migrações, manutenção, health/metrics/logs/quotas |
Esses são contratos de banco de dados local limitados, não paridade PostgreSQL ou serviços de cluster. Consulte Ridge Database e o documento de capacidade Ridge para obter as formas e exclusões exatas suportadas.
Fontes da verdade
- fonte e manifestos do pacote:
seed/compiler/llvm/libs/*/; - operações conhecidas do compilador: Core Built-ins and Standard Libraries;
- contratos de propriedade: Propriedade;
- implementação e limites de meta: Status Atual.