deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (hnrss.org)

APSW, SQLite'in tüm C API'sini ortaya çıkaran Python binding'i Hacker News ana sayfasında

Sanal tablolar, VFS ve tam metin arama dahil olmak üzere SQLite C API'sinin tamamını ortaya çıkaran Python wrapper'ı APSW, Hacker News ana sayfasında yer aldı.

APSW, SQLite'in tüm C API'sini ortaya çıkaran Python binding'i Hacker News ana sayfasında

Another Python SQLite Wrapper'ın kısaltması olan APSW, Hacker News ana sayfasında yer alarak dikkatleri, SQLite'ı sürücü tarzı bir soyutlama yerine bütünüyle ortaya çıkarmayı hedefleyen bir Python binding'ine çekti.

Projenin GitHub deposuna göre APSW, SQLite'in tam C API'si ile Python'un C API'sini bir araya getiriyor ve hem veritabanı motorunun hem de dilin yeni sürümleriyle güncel tutuluyor. CPython 3.10 ve sonraki sürümleri destekliyor.

Eşzamanlı ya da asenkron, SQLite'in tüm yüzeyi

APSW tüm C API'sini bağladığı için, SQLite'in derinliklerinde yer alan özelliklere Python'dan erişmek mümkün. README, bunun neler olanak sağladığına örnek olarak tam metin aramayı, session uzantısını, sanal tabloları, VFS (sanal dosya sistemi) backend'lerini, JSON işlemeyi ve Carray'i gösteriyor.

Projenin belirttiğine göre bu işlevlerin tümü sıradan eşzamanlı kodla çalışıyor ve APSW ayrıca Python ekosistemindeki her asenkron framework'e tam destek sağlıyor — asyncio tabanlı uygulamaların giderek daha çok event loop'u engellemeyen veritabanı katmanları beklediği bir dönemde önemli bir iddia.

Yerleşik sqlite3 modülü yerine ne zaman kullanmalı

Python zaten bir sqlite3 modülüyle geliyor ve README ikisi arasındaki ayrımı net biçimde ortaya koyuyor. SQLite'ın diğer veritabanı sürücüleriyle değiştirilebilir görünmesini istiyorsanız yerleşik modülü kullanın. SQLite'ı tam anlamıyla kullanmak ve projenin "geliştirilmiş bir geliştirici deneyimi" olarak nitelendirdiği şeyi istiyorsanız APSW'ye yönelin. Dokümantasyon, iki kütüphane arasındaki farkları ayrıntılıyla açıklayan özel bir bölüm içeriyor.

Sürümler, dokümantasyon ve topluluk

Sürümler PyPI'ye yayınlanıyor, pip ile kurulabiliyor ve GitHub'da yansıtılıyor; duyurular PyPI'dan gelen bir RSS akışının yanı sıra Python SQLite tartışma grubunda yapılıyor. Dokümantasyon, örnek kod içeren rehberli bir turu kapsıyor ve projenin GitHub Pages sitesinde barındırılıyor.

Hata takibi GitHub Issues üzerinden yürütülüyor, tartışmalar Python SQLite grubunda ve GitHub Discussions'ta yapılıyor; yazar Roger Binns'e e-posta yoluyla da ulaşmak mümkün. Lisanslama serbest: projenin ifadesiyle, esas olarak herhangi bir OSI onaylı açık kaynak lisansı.

Neden önemli

Çoğu Python geliştiricisi için SQLite, standart kütüphanenin sqlite3 modülü aracılığıyla gelir; bu arayüz diğer veritabanı sürücülerine benzer şekilde şekillendirilmiştir. Bu biçim taşınabilirlik açısından kullanışlıdır ama aynı zamanda SQLite'ı genel bir SQL rolüne sokma eğilimindedir ve motorun daha ayırt edici mekanizmalarını — sanal tablolar, özel dosya sistemi backend'leri, session takibi, tam metin arama üzerinde ince ayarlı kontrol — Python kodu açısından ya kullanışsız ya da görünmez kılar.

APSW'nin savunusuna göre bu mekanizmalar, SQLite'ı öncelikli olarak seçme nedeninizin ta kendisidir ve Python bunların tümüne erişebilmelidir. Birinci sınıf asenkron desteğiyle birleştiğinde bu durum, kütüphaneyi SQLite'ı kolaylık sağlayan bir veritabanı değil de programlanacak bir gömülü motor olarak gören uygulamalar için konumlandırıyor: uygulama dosya biçimleri, local-first veri katmanları, özel depolama denemeleri.

Hacker News ana sayfasında yer almak kodun kendisini değiştirmeyecek ama soyutlamayı erişimle takas eden araçlara olan ilginin yararlı bir göstergesi — ve SQLite deneyimi standart kütüphanede son bulan herkes için motorun başka neler yapabileceğine bakmaya dair bir çağrı.

  • #python
  • #sqlite
  • #databases
  • #open-source

İlgili yazılar