Fitz'de HTTP istemcisi yerleşik: sıfır bağımlılık, native async
Fitz, HTTP istemci fonksiyonlarını (get/post/put/delete) yerleşik yaptı: sıfır bağımlılık, native async, bit-bit ikili paritesi.
Fitz programlama dili, giden HTTP isteklerini (http.get, post, put, delete, head, request) artık harici kütüphane gerektirmeden dilin kendi builtin'leri olarak sunuyor. Bu değişiklik, statü sayfası aracı fitzwatch geliştirilirken ortaya çıkan bir ihtiyaçtan doğdu: düzenli health check'ler için http.head çağrısı olmadan dilin pratik kullanımı eksik kalıyordu. Bir hafta içinde altı builtin ana koda eklendi; hem fitz run hem fitz build arasında bit-bit davranış paritesi, statik tip kontrolü ve binary'de sıfır dış bağımlılık sağlandı.
Karşılaştırma, Python'da requests/httpx ikilisinin sync/async için ayrı kütüphaneler gerektirmesi, JS'de axios'un varsayılan olarak 4xx/5xx'te throw atması ve Rust'ta reqwest'in ayrı crate'ler ve Client kurulumu istemesiyle Fitz'in tek, dile gömülü async API'sini karşı karşıya koyuyor. Fitz'de yanıt tipi HttpClientResponse sabit alanlara (status, body, headers, duration_ms) sahip ve JSON gövdeler otomatik serileşiyor.
En dikkat çekici tasarım kararı hata yönetiminde: 4xx ve 5xx durum kodları hata sayılmıyor, bunlar Ok(response) olarak dönüyor ve body okunabiliyor. Sadece DNS, timeout, TLS handshake gibi taşıma katmanı hataları Result::Err olarak geliyor. Derleyicinin checker'ı, Result üzerinde Ok/Err dallarının eksiksiz eşleştirilmesini zorunlu kılıyor, bu da hataların sessizce yutulmasını engelliyor. TLS tarafında statik rustls kullanımıyla host üzerinde OpenSSL bağımlılığı da ortadan kaldırılmış.