https://github.com/jxbc/bladejs
Super fast web-server on Fastify with Hot Reload, templates & etc!
https://github.com/jxbc/bladejs
bladejs fastify js
Last synced: 2 months ago
JSON representation
Super fast web-server on Fastify with Hot Reload, templates & etc!
- Host: GitHub
- URL: https://github.com/jxbc/bladejs
- Owner: jxbc
- Created: 2024-12-20T05:54:31.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-01-21T04:12:44.000Z (11 months ago)
- Last Synced: 2025-03-06T10:28:11.454Z (10 months ago)
- Topics: bladejs, fastify, js
- Language: JavaScript
- Homepage:
- Size: 530 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Blade.js - super fast webserver with hot reload/auto reload
  
## Что такое Blade.js?
Blade это библиотека для создания быстрых веб-серверов. В основном рекомендуема для тестирования или разработки небольших сайтов/приложений. Под капотом Blade.js скрывается производительный веб-сервер от Fastify.
В случае, если вам нужен небольшой сайт с набором нужных функций в виде SSR и тд, Blade решает проблему тяжелых библиотек/фреймворков (Next, Nest), у которых много нужных, но и зачастую ненужных методов, а еще миллионы зависимостей из-за которых может что-то сломаться в самый неподходящий момент.
У Blade.js все просто - из коробки вы получаете всё самое основное для быстрой разработки. По сути Blade.js это обертка над Fastify.
## Возможности
- [x] Самый быстрый REST API
- [x] SSR Render (шаблонитизатор)
- [x] CORS метод для REST API
- [x] devMode для авто-обновления страницы при внесении изменений
- [x] Создание файлового сервера
- [x] База данных - SimpleDB ([изучить](https://github.com/jxbc/BladeJS/wiki/SimpleDB-by-Blade))
- [x] Long-Polling маршруты/сервер
- [x] WebHooks, быстрая и простая реализация
- [ ] Cloudflare Tunnel для быстрого тестирования
- [ ] Server Sent Events с одной строчки кода
И много других возможностей еще не раскрыто, но в скором...
Все доступные методы описаны здесь >> [Методы BladeJS](https://github.com/jxbc/BladeJS/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B)
## Производительность
Самым удачным опытом оказалось попробовать веб-сервер на Fastify. Он легкий, мощный, имеет схему и типизацию запрос/ответ, а ещё очень быстрый. Ни один веб-сервер на Node.js не способен обрабатывать такое количество запросов, как Fastify. **70K+ запросов в секунду**!

> Fastify способен потягаться в бенчмарках с самыми быстрыми веб-серверами на других языках, более низкоуровневых. НО я по прежнему люблю и Koa, он так же хорош, если нужна производительность на дистанции.
## Для чего нужен Blade?
Blade решает проблему написания чистых шаблонов на HTML/CSS/JS. А так же возможность использовать Hot Reload сервер и фронт.
## Как начать пользоваться?
1. Клонируйте git
2. Выполните установку Node.js (если его нет)
3. Откройте cmd, перейдите в директорию клонированного git и выполните команды:
```bash
npm init -y
```
А затем:
```bash
node install
```
Команды выше выполнят инициализацию проекта и установят необходимые зависимости для Bladejs.
После выполненных манипуляций введите следующую команду:
```bash
node watch
```
**Готово!** watch следит за изменениями в файлах для обновления запущенного приложения. Теперь вы можете разрабатывать сайты/приложения в режиме Live не пользуясь сторонними "тяжелыми" библиотеками. Hot Reload для HTML/CSS/JS работает только если в файле index.js была инициализация класса с переданным объектом `{ devMode: 1 }`
## Давайте начнем!
Давайте создадим самый простой веб-сервер, где отрендерим данные с сервера в index.html
```javascript
import blade from './modules/blade.js'
const Blade = new blade({devMode: 1}) //devMode включает в себя Hot Reload для html/css/js
const port = 3000
Blade.get('/', (req, res) => {
return res.render('index.html', {name: 'John'})
})
Blade.static('static') //Регистрируем папку для доступа к файлам статического контента (css, js, svg & etc)
Blade.run(port) //Запускаем веб-сервер
console.log(`Blade Started!`)
```
Круто, не так ли?