Kwerc
Добро пожаловать в WERC Kyle, переосмысление веб -структуры WERL, написанного в ES Shell, написанной в ES Shell.
Функции
- Продуктивный. Создайте мощные, масштабируемые веб -приложения так же легко, как написание сценариев оболочки. Буквально - ES - это Shell! Труба вместе Unix Tools, такие как SED и GREP, или практически любые программы командной строки для создания сложных функций с очень небольшим кодом. И с гораздо более интеллектуальным дизайном, чем Bourne/Bash и другие раковины, ES - это весело и надежно.
- Легко учиться. Не знаете ES? Нет проблем (почти никто не делает). ES очень прост. Если вы знаете Shell Bourne или Bash или RC, вы уже знаете большинство ES. Проверьте бумагу ES для полного описания языка всего за 10 страниц и ES Manpage для получения дополнительной информации.
- Взломан. Kwerc - пара сотен строк ES. Легко интегрируйтесь с вашей любимой базой данных (хотите воспользоваться мощным перенаправлением ввода -вывода ES? Попробуйте хранить данные в простом текстовом дереве или установить базу данных в качестве файловой системы предохранителя), код на любом языке и т. Д. Даже самой ES может быть изменена и расширен на лете.
- Мощный. Помимо стандартных функций оболочки, ES расширяется и функциональна с поддержкой функций первого класса, лексического объема, исключений и богатых возвращаемых значений. Нужно больше? Kwerc отправляется с помощью быстрого переводчика Mawk, вы можете использовать встроенный из ES. Или, опять же, легко интегрируйте ваш любимый язык (обратите внимание на некоторые языки со значительным успехом, когда вы вызываете из Shell).
- Быстрый. Подходит в небольшой рамдиск, включая полный набор статически скомпилированных инструментов командной строки UNIX (9BASE). Работает в кластере. Поддерживает Redis в качестве основного хранилища данных (Kwerc-Redis.
- Безопасный. Kwerc имеет сильную защиту от инъекций раковины. Правила цитирования ES и общий разумный синтаксис избегают ошибок безопасности, которые распространены в других оболочках. И, конечно, нет лучшей функции безопасности, чем простота. Kwerc прост по проектированию и реализации, а программное обеспечение, построенное с Kwerc, делает больше с меньшим кодом и меньшими ошибками. Кроме того, Kwerc полностью автономен и может быть запущен в хруте или тюрьме только для чтения.
- Портативный. Должен работать на любом типичном UNIX (когда -нибудь он может работать и на плане 9 или Inferno). Нет внешних зависимостей. 100% статически скомпилировано.
Зависимости
Все включено в поставщик/. Вам просто нужны компиляторы C и Golang (> = 1,11) для построения. Настоятельно рекомендуется создавать статически для максимальной производительности (включая любые внешние программы, которые вы запускаете от Kwerc). Musl идеально подходит (хотя может создавать ошибки в 9Base в некоторых средах).
Простая make составят зависимости поставщиков и поставит их в нужном месте. Вам не нужно запускать make install (на самом деле, вы не можете)-все автономно в каталоге Kwerc.
Debian:
# apt install build-essential golang-go
$ make
Альпийский:
# apk add build-base go
$ make
Вот краткий обзор этих зависимостей:
- ES: ES -интерпретатор. Альтернативы: RC, любая другая оболочка с небольшим количеством портирования.
- 9base: различные инструменты плана 9, переносимых в UNIX, обеспечивая хорошую среду оболочки. Альтернативы: Coerutils, SBASE, BusyBox и т. Д. С небольшим количеством портирования.
- Mawk: быстрый интерпретатор Awk. Альтернативы: любой другой интерпретатор Awk.
- Kryptgo: интерфейс командной строки для некоторых крипто-функций Golang, используемый для Auth.
- CGD: веб -сервер CGI. Альтернативы: любой веб -сервер с поддержкой CGI - предстоящая документация.
Использование
./bin/cgd -c app/es/kwerc.es
Kwerc теперь должен быть доступен по адресу http://127.0.0.1:42069. Сайт по умолчанию поставляется с базовым входом в систему/регистрации и страницей отладки.
Далее: Создание реального веб -приложения. Документация - это работа на kwerc.org. Документация WERC также несколько применима.
Расширения
Часто подвергаются сомнению ответы
В. Веб -структура в Shell? Вы не можете быть серьезным.
О. Это не избивает.
В. CGI? Разве это не медленно?
A. https://www.mail-archive.com/[email protected]/msg00202.html
В. Статические двоичные файлы? Разве эти огромные/небезопасные/медленные?
A. https://sta.li/faq/
Скоро приблизится к кверку рядом с вами
- Документация
- Загрузка файла
- Кэширование
- Поддержка PWA
- ???
Контакт
[email protected]
Пожертвовать
Просто отправьте деньги
Лицензия
Kwerc распределяется по лицензии ISC. Смотрите лицензию для деталей.
Зависимости при поставщике/ имеют свои собственные лицензии. Прочитайте их.
Спасибо и история
Кверк посвящен памяти Уриэля. <3
Kwerc основан на WERC, созданный Уриэлем с вкладом Гарбеама, Криса Маглионе, SQWEEK, Soul9, MyCroftiv, Maht, Yiyus, Cinap_lenrek, KHM и многих других.
Kwerc включает в себя многие изменения от Werc Fork's, Swerc.
Также спасибо всем, кто за различными проектами зависимостей под руководством поставщика/.
Идеи для Kwerc поступают из различных проектов, в которых я использовал WERC, включая ROVR, VRLFP, Tokumei, Gelato Labs и Werchan. Спасибо всем участникам. Особая благодарность известному гению и дорогому другу Киферу Рурку за большую мудрость, которая сформировала дизайн Kwerc.