O Livro Glide

Um guia completo de Glide.

De glide run hello.glide a um serviço multi-pacote. Cada capítulo compila para código real e funcional, nada é deixado pela metade. Escrito e mantido por Murillo Deolino.

33
Capítulos
~599
Minutos
0.3.3
Glide
I

Fundamentos

Instale a toolchain, aprenda a forma da linguagem e escreva seus primeiros programas.

II

Erros e memória

Como Glide lida com falhas e posse — sem exceções, sem anotações de lifetime.

III

Tipos e traits

Modelando dados com structs, enums, generics e o sistema de traits.

IV

Concorrência

Corrotinas M:N, canais e select — a história do paralelismo.

V

Projeto

Módulos, pacotes, o manifesto e como entregar uma aplicação real.

VI

Biblioteca padrão

Um tour e depois um capítulo por módulo — strings, coleções, matemática, tempo, arquivos, JSON, regex, rede e mais.

09 6 min de leitura

Um passeio pela biblioteca padrão

Um passeio guiado pelas baterias que o Glide inclui: strings e vetores (embutidos), depois hashmaps, iteradores, math, time, arquivos, ambiente e JSON via `stdlib::*`. As funções que você vai chamar de verdade.

  • Strings
  • Vetores
  • HashMaps
  • Math
10 17 min de leitura

Prelude e built-ins

O prelude sempre em escopo — impressão, formatação, alocação bruta no heap, canais, argumentos da CLI, auxiliares do escalonador, macros de diagnóstico, introspecção de memória e o tipo Pair<K,V>.

  • Importação
  • Superfície pública em resumo
  • Impressão e formatação
  • Canais
11 14 min de leitura

Strings

Referência para o tipo string embutido do Glide: inspeção, busca, fatiamento, divisão, transformação e métodos de parsing.

  • Importação
  • Catálogo de métodos
  • Inspeção e comparação
  • Busca
12 15 min de leitura

Vector\<T>

Referência da API de Vector<T> — array crescente com posse: construção, mutação, combinadores funcionais, iteradores e redutores por tipo de elemento para i32/f64/string/bool.

  • Importação
  • A struct
  • Construção
  • Acesso a elementos e mutação
13 14 min de leitura

HashMap & Set

Referência para as coleções HashMap<V> e StringSet com chave string da biblioteca padrão do Glide: insert, get, remove, snapshots de iteração (keys/values/entries), map_values e gerenciamento de tempo de vida.

  • Import
  • HashMap&amp;lt;V&amp;gt;
  • StringSet
  • Pair&amp;lt;K, V&amp;gt;
14 15 min de leitura

Iteradores

O módulo stdlib::iter — a trait Iterator, VecIter e os combinadores auxiliares ansiosos (map/filter/take/skip/fold/find/range/repeat) sobre Vector<T>.

  • Importação
  • Visão geral da superfície pública
  • A trait Iterator
  • Transformadores — retornam um novo *Vector&lt;U&gt;
15 12 min de leitura

Math

Referência de matemática da biblioteca padrão do Glide: funções float da libm (sqrt, pow, trigonometria, logaritmos), as constantes PI/E, e auxiliares inteiros/float em Glide puro (min/max/clamp, abs, sign, ipow, gcd, lcm).

  • Import
  • Visão geral da superfície
  • Constantes
  • Funções de ponto flutuante
16 20 min de leitura

Tempo

API de tempo da biblioteca padrão — spans de Duration, instantes Time com componentes civis e formatação, o Stopwatch monotônico, parsing RFC 3339 e os canais de timer after/tick.

  • Importação
  • Constantes
  • Duration
  • Time
17 14 min de leitura

Sistema de Arquivos & I/O

Referência da biblioteca padrão para stdlib::fs (arquivos, diretórios, caminhos, I/O binário) e stdlib::io (leitura de stdin/stdout/stderr por linha e por byte).

  • Importação
  • Lendo arquivos
  • Escrevendo arquivos
  • Existência, tamanho e tipo
18 18 min de leitura

OS

Identidade da máquina hospedeira e do processo — detecção de plataforma, IDs de processo, diretório de trabalho, caminho do executável, informações de hardware, diretórios padrão, verificação de TTY e um atalho de shell de uma linha.

  • Import
  • Catálogo completo
  • Identidade da plataforma (tempo de compilação, infalível)
  • Identidade do processo
19 12 min de leitura

Ambiente & argumentos de linha de comando

Ambiente por processo em programas Glide: acesso a argumentos de linha de comando, consulta/mutação/enumeração de variáveis de ambiente, expansão de variáveis e encerramento do processo.

  • Importação
  • Superfície pública resumida
  • Argumentos de linha de comando
  • Lendo variáveis de ambiente
20 16 min de leitura

Processo

Faça spawn e execute subprocessos com controle total sobre argv — capture stdout/stderr, defina variáveis de ambiente e diretório de trabalho, alimente stdin, transmita pipes em tempo real e inspecione códigos de saída e sinais.

  • Import
  • Visão geral
  • Tipos de resultado e configuração
  • Construindo um comando
21 17 min de leitura

JSON

Parseamento e emissão de JSON, a árvore JsonValue — construtores, navegação, acessores tipados, construção e o trait JsonBind.

  • Importação
  • Visão geral da superfície pública
  • Constantes de tipo
  • A struct JsonValue
22 22 min de leitura

Regex

stdlib::regex — um motor de expressões regulares estilo PCRE escrito em Glide puro: compile padrões, use match/search/find/replace/split, grupos de captura (numerados e nomeados), e a sintaxe suportada (classes, quantificadores, âncoras, retrorreferências, lookaround, flags).

  • Importação
  • Visão geral
  • Compilando padrões
  • Testando uma correspondência
23 10 min de leitura

Random

Geração de números pseudo-aleatórios na biblioteca padrão do Glide: o gerador Rng xorshift64*, seed determinística e via relógio, e auxiliares para valores brutos de 64 bits, inteiros não-negativos, intervalos delimitados, floats uniformes e cara ou coroa.

  • Import
  • Visão geral da interface pública
  • O gerador Rng
  • Construção
24 14 min de leitura

Codificação, criptografia e compressão

Referência de API dos módulos de codificação, criptografia e compressão do Glide — base64, hex, ByteBuffer, hashes SHA/HMAC, gzip inflate e extração de tar em memória.

  • Import
  • Visão geral da superfície pública
  • base64
  • hex
25 19 min de leitura

Logging

stdlib::log — logger estruturado com níveis: níveis de log, macros info!/warn!/error!, os tipos Logger/LoggerBuilder/LogSink/LogLine, campos estruturados, formatos de saída e configuração de sinks.

  • Import
  • Superfície pública em resumo
  • Níveis, formatos, timestamps e tipos de sink
  • Início rápido: o logger global
26 14 min de leitura

Sincronização

Primitivas de sincronização — Mutex<T>, Atomic e WaitGroup para proteger estado compartilhado entre corrotinas.

  • Import
  • Visão geral
  • Mutex&amp;lt;T&amp;gt;
  • Atomic
27 14 min de leitura

CLI: argparse & spinner

Blocos de construção para CLI — o parser de flags ArgParser (flags string/int/bool, formas curta e longa, posicionais, --help automático) e o spinner de progresso no stderr.

  • Import
  • Superfície pública em resumo
  • argparse — visão geral
  • Structs de valor de flag
28 95 min de leitura

Rede, HTTP & URL

A stack de rede completa do Glide — endereçamento IPv4/IPv6 e parsing de SocketAddr, resolução de DNS, cliente e servidor TCP, UDP com multicast IPv4, raw sockets e ICMP ping/traceroute, TLS 1.2/1.3 sobre OpenSSL, cliente WebSocket, um cliente HTTP/1.1 completo (cookies, forms, multipart, JWT, gzip), um servidor HTTP/1.1 com roteamento por método, extractors tipados, cadeias de middleware, CORS, arquivos estáticos, SSE e um reverse proxy, além de clientes HTTP/2 e HTTP/3 e codificação percent-encoding de URL.

  • Import
  • Mapa de módulos
  • IP &amp; endereços de socket — IpAddr
  • Resolução DNS — resolve
29 21 min de leitura

E-mail (SMTP / IMAP / POP3)

Componha, envie e leia e-mails a partir do Glide — construa mensagens RFC 5322 com o tipo Mail, envie via SMTP (STARTTLS / SMTPS, autenticação PLAIN / LOGIN) e leia caixas de entrada via IMAP4rev1 ou POP3.

  • Importação
  • O tipo Mail
  • SMTP — envio
  • IMAP — leitura e marcação de mensagens
30 21 min de leitura

Sistema e ferramentas

Referência de sistema e ferramentas — tratamento tipado de sinais do SO, captura de stack trace em tempo de execução, a superfície AST de meta (compile-time) para autores de proc-macro, e os códigos de lint embutidos mais o helper lint_code.

  • Import
  • Sinais
  • Backtraces
  • Macros declarativas (macro name!)
VII

Construindo aplicações

Juntando tudo: um serviço HTTP, depois testes e benchmarks para mantê-lo honesto.

VIII

Descendo o nível

Desça abaixo da linguagem — chame C, embuta C cru e escreva assembly inline.