Django channels, Django frameworküne entegre bir websocket kütüphanesi.
Tornado ise websocket üzerine kurulmuş bir web frameworkü.
Bunlardan birini yazmak için biraz zamanım var. Ancak sadece 1 tanesine yetecek. Sizin fikrinizi alayım dedim.
Lütfen oy vermeden önce kısa bir araştırma yapın. Zaten çok fazla Türkçe kaynak yok ikisi içinde.
Ben şahsen Django’nun modüler yapısını, her şeyin yerli yerinde oluşunu beğendiğim için tercih ediyorum. Django channels kütüphanesi de tam olarak Django’nun bu yapısına uygun geliştirildiği için, birkaç ekleme ile projeye entegre olabiliyor. Sırf bu yüzden Django channels seçebilirim.
Django için birçok özellik beraberinde gelirken, Tornado için ayrıca yüklemek gerekiyor. Mesela Django’da ORM dahili olarak gelir, ama Tornado için ayrıca yüklemek ve entegre etmek gerekiyor. Django admin panelini söylemiyorum bile
Websocket kullanılan uygulamalarda öncelik C10k denen problemi çözmek aslında. Bir servera aynı anda 10 bin bağlantı yapılamamasına dayanan bir problem. Django channels anlık 2000 kadar bağlantı yapabilirken Tornado 8000 kadar bağlantı yapabiliyor. Bu nedenle ihtiyaç olduğunda kimse admin panelini veya ORM’yi düşünemiyor. Ama küçük ölçekli projeler için django channels da kullanılabilir pekâlâ.
Şimdi farkettim de ben windows kullanıyorum ve windowsta redis kurulumu çok sıkıntılı bir durum. Django Channels redis olmadan neredeyse hiçbir işe yaramıyor.
Biraz topluluğun isteğiyle çakışıyor gibi olacak ama django channels hiçbir zaman seçenek olmamış. Başka biri yazana kadar bekleyelim.
Bana tornadoyu yazmak düştü.
Sorunuzda performansa dair bir şeyden bahsetmediniz, kullanacak kitlenin büyüklüğünden ve ne tür bir işlem için kullanılacağından da. Ben de Django kullanan birisine en uygun kütüphaneyi önerdim, zamanım yok demişsiniz. Ayrıca performans için bir çok parametreye de bakılabilir. Herşey performans değildir bazen. Proje büyüdükçe yönetim de zorlaşacak.
Evet okudum. Sanırım mesele Django’dan çok WSGI veya ASGI olması ile alakalı. Django 3.0 ile birlikte gelen ASGI desteğinin etkisini bilmediğim için bir yorumda bulunamayacağım.