Assassin ⚡️ - bunuh halaman web yang perlahan
Assassin berfungsi untuk membunuh transaksi pangkalan data yang menyekat UI.
Operasi pangkalan data boleh menjadi perlahan, tetapi tiada pangkalan data sedia ada menyelesaikan masalah ini dengan cara yang jelas: penyumberan luar tugas sukar kepada pekerja web.
Saya ingin membuat pangkalan data iaitu:
- Sumber terbuka
- Responsif
- Terpencar
- Dioptimumkan untuk pekerja web
- Direka untuk penyemakan imbas peribadi
Itulah sebabnya saya mencipta pangkalan data saya sendiri dengan JavaScript.
ciri ?
? Ringan : Dihantar dengan kurang daripada 100 baris kod sisi pelanggan.
⚖️ Terpencar : Pangkalan data anda tidak mempunyai titik kegagalan tunggal. Jika pelayan rosak, data anda mudah diperoleh.
? Berfungsi dalam penyemakan imbas peribadi : Saya menyelidik pangkalan data seperti LevelDB, PouchDB dan Gun, yang bergantung pada IndexedDB untuk storan sebelah pelanggan. Saya mahu pangkalan data ini berkesan, tetapi saya akhirnya mencipta pangkalan data ini sebahagiannya kerana IndexedDB dilumpuhkan dalam penyemakan imbas peribadi, yang bermaksud tiada pangkalan data ini berfungsi untuk saya.
Kaedah:
-
killer.connect(url) - Sambung ke pelayan.
-
killer.create(key,value) - Tambahkan entri pada pangkalan data.
-
killer.update(key,new value) - Kemas kini nilai kunci dalam pangkalan data.
-
killer.delete(key) - Padamkan entri dalam pangkalan data.
-
Baca pangkalan data - Di dalam pekerja web atau utas utama, anda boleh mengakses pangkalan data melalui pembolehubah yang dipanggil pangkalan data.
Seni bina:
-
Model Data : Assassin ialah kedai kunci/nilai yang menyokong pemetaan kunci kepada nilai yang sepadan.
-
Seni Bina Sistem : Protokol DAT mengedar dan mengehoskan data antara banyak komputer, jadi tiada satu lokasi di mana data disimpan. Assassin bergantung pada protokol DAT untuk kegigihan data. Metadata pasangan nilai kunci disimpan dalam struktur percubaan teragih.
-
Tahap Pengasingan : Tahap pengasingan ditentukan oleh pengguna akhir pangkalan data. Assassin direka untuk mempunyai tahap pengasingan yang rendah.
-
Model Storan : Assassin menghantar data ke pelayan, yang kemudiannya menyimpan metadata dalam sistem fail yang diedarkan Hyperdrive, yang dibina pada protokol DAT. Data itu sendiri diedarkan dan dihoskan antara berbilang rakan sebaya.
-
Sangat Tersedia : Assassin sangat tersedia dan akhirnya konsisten. Assassin sentiasa menyimpan suntingan terakhir yang dibuat ke pangkalan data apabila konflik timbul. CRDT ini mungkin berubah kemudian.
Mengapa ia dipanggil Assassin?
- Tapak web peribadi saya pada masa ini menggunakan pangkalan data Gun.
- Senjata mempunyai banyak ciri yang saya suka dan pengasasnya cukup bagus.
- Senjata berhenti bekerja untuk saya.
- RAD penyesuai storan Gun bergantung pada IndexedDB, yang dilumpuhkan dalam penyemakan imbas peribadi.
- Senjata menyegerakkan data peer to peer melalui WebRTC, yang tidak berfungsi pada pekerja web.
- Assassin adalah sejenis (serius, sangat sedikit) seperti Gun tetapi untuk pekerja web.
-
Pekerja senjata api = Assassin ?
Dibina dengan ?
-
Hyperdrive - Terima kasih kerana membina lapisan abstraksi di atas protokol DAT!
- HTML - Untuk mencipta demo web
- CSS - Untuk menggayakan demo web
- JavaScript - Untuk logik
-
Node.js - Untuk menyampaikan logik
Pastikan anda berkongsi pendapat anda tentang:
- repositori GitHub Assassin
- pelayan Gitter
Dan jika anda benar-benar ingin membantu menjadikan Assassin lebih baik, sumbangkan kepada repo GitHub!
Assassin ialah sumber terbuka, dan akan sentiasa begitu.
Sokong saya di:
Bintangkan repo di GitHub, Tweet dan kongsi di kalangan rakan, pasukan dan kenalan anda!
Atas ialah kandungan terperinci Assassin ⚡️ - Sumber terbuka, pangkalan data percuma untuk membunuh halaman web yang perlahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!