Kwerc
Selamat datang di Kyle's WERC, reimaginasi kerangka web WERC Uriel yang ditulis dalam ES Shell.
Fitur
- Produktif. Bangun aplikasi web yang kuat dan dapat diskalakan semudah menulis skrip shell. Secara harfiah - ES adalah shell! Pipa bersama -sama alat Unix seperti SED dan GREP atau hampir semua program baris perintah untuk membangun fungsi kompleks dengan kode yang sangat sedikit. Dan dengan desain yang jauh lebih cerdas daripada Bourne/Bash dan cangkang lainnya, ES menyenangkan dan dapat diandalkan.
- Mudah dipelajari. Tidak tahu es? Tidak masalah (hampir tidak ada yang melakukannya). ES sangat sederhana. Jika Anda tahu Bourne Shell atau Bash atau RC, Anda sudah tahu sebagian besar ES. Lihatlah kertas ES untuk deskripsi lengkap bahasa hanya dalam 10 halaman dan ES MANPAGE untuk info lebih lanjut.
- Dapat diretas. Kwerc adalah beberapa ratus baris ES. Mudah berintegrasi dengan database favorit Anda (ingin memanfaatkan pengalihan I/O ES yang kuat? Coba simpan data dalam pohon file teks biasa atau pasang database sebagai sistem file sekering), kode dalam bahasa apa pun, dll. Bahkan ES sendiri dapat dimodifikasi dan diperluas dengan cepat.
- Kuat Selain fitur shell standar, ES dapat diperluas dan fungsional dengan dukungan untuk fungsi kelas satu, ruang lingkup leksikal, pengecualian, dan nilai pengembalian yang kaya. Butuh lebih banyak? Kwerc Kapal dengan Interpreter Mawk Fast Blazing Anda dapat menggunakan inline dari ES. Atau, sekali lagi, dengan mudah mengintegrasikan bahasa favorit Anda (perhatikan beberapa bahasa dilengkapi dengan hit kinerja yang signifikan ketika dipanggil dari shell).
- Cepat. Cocok dalam ramdisk kecil termasuk satu set lengkap alat baris perintah unix yang dikompilasi secara statis (9Base). Bekerja di sebuah cluster. Mendukung Redis sebagai datastore utama (Kwerc-Redis.
- Aman. Kwerc memiliki perlindungan yang kuat terhadap suntikan shell. Aturan kutipan ES dan sintaks yang masuk akal secara keseluruhan menghindari bug keamanan yang umum di cangkang lain. Dan tentu saja, tidak ada fitur keamanan yang lebih baik daripada kesederhanaan. Kwerc sederhana dengan desain dan implementasi, dan perangkat lunak yang dibangun dengan Kwerc lebih banyak dengan lebih sedikit kode dan lebih sedikit bug. Selain itu, KWERC sepenuhnya mandiri dan dapat dijalankan dalam chroot atau penjara hanya baca.
- Portabel. Harus dijalankan pada UNIX yang khas (suatu hari nanti dapat dijalankan pada Rencana 9 atau Inferno juga). Tidak ada dependensi eksternal. 100% disusun secara statis.
Dependensi
Semuanya termasuk dalam vendor/. Anda hanya perlu compiler C dan Golang (> = 1.11). Sangat disarankan untuk membangun secara statis untuk kinerja maksimum (termasuk program eksternal yang Anda jalankan dari KWERC). Musl sangat ideal (meskipun dapat membuat bug di 9base di beberapa lingkungan).
make sederhana akan menyusun dependensi vendor dan menempatkannya di tempat yang tepat. Anda tidak perlu menjalankan make install (sebenarnya, Anda tidak bisa)-semuanya mandiri di direktori Kwerc.
DEBIAN:
# apt install build-essential golang-go
$ make
Alpine:
# apk add build-base go
$ make
Berikut ini adalah gambaran singkat dari ketergantungan ini:
- ES: The ES Interpreter. Alternatif: RC, cangkang lain apa pun dengan sedikit pekerjaan porting.
- 9Base: Berbagai Alat Paket 9 diangkut ke UNIX, menyediakan lingkungan shell yang bagus. Alternatif: Coreutils, SBase, BusyBox, dll. Dengan sedikit pekerjaan porting.
- MAWK: Interpreter AWK yang cepat. Alternatif: Penerjemah AWK lainnya.
- Kryptgo: Antarmuka baris perintah untuk beberapa fungsi crypto Golang, digunakan untuk auth.
- CGD: Server Web CGI. Alternatif: Server web apa pun dengan dukungan CGI - dokumentasi yang akan datang.
Penggunaan
./bin/cgd -c app/es/kwerc.es
Kwerc sekarang harus dijangkau di http://127.0.0.1:42069. Situs default hadir dengan login/pendaftaran dasar dan halaman debug.
Selanjutnya: Membangun aplikasi web yang sebenarnya. Dokumentasi adalah pekerjaan yang sedang berlangsung di kwerc.org. Dokumentasi WERC juga agak berlaku.
Ekstensi
Jawaban yang sering ditanyakan
Q. Kerangka kerja web di shell? Anda tidak bisa serius.
A. Ini bukan pesta.
Q. CGI? Bukankah itu lambat?
A. https://www.mail-archive.com/[email protected]/msg00202.html
Q. binari statis? Bukankah itu besar/tidak aman/lambat?
A. https://sta.li/faq/
Segera hadir di Kwerc di dekat Anda
- Dokumentasi
- Unggahan file
- Caching
- Dukungan PWA
- ???
Kontak
[email protected]
Menyumbangkan
Kirimkan saja uangnya
Lisensi
Kwerc didistribusikan di bawah lisensi ISC. Lihat lisensi untuk detailnya.
Dependensi di bawah vendor/ memiliki lisensi sendiri. Bacalah.
Terima kasih & sejarah
Kwerc didedikasikan untuk memori Uriel. <3
Kwerc didasarkan pada WERC, dibuat oleh Uriel dengan kontribusi dari Garbeam, Kris Maglione, Sqweek, Soul9, Mycroftiv, Maht, Yiyus, Cinap_lenrek, KHM dan banyak lainnya.
Kwerc menggabungkan banyak perubahan dari Garbeam's WERC Fork, Swerc.
Terima kasih juga untuk semua orang di balik berbagai proyek ketergantungan di bawah vendor/.
Gagasan untuk Kwerc berasal dari berbagai proyek di mana saya telah menggunakan WERC, termasuk ROVR, VRLFP, Tokumei, Gelato Labs, dan Werchan antara lain. Terima kasih kepada semua orang yang terlibat. Terima kasih khusus kepada jenius dan teman baik yang tercatat Keefer Rourke atas banyak kebijaksanaan yang telah membentuk desain Kwerc.