9.1 KiB
9.1 KiB
🎓 Документация Bun Web Server - Встроенные возможности
📋 Все файлы документации
| Файл | Описание | Для кого |
|---|---|---|
| README.md | Основная документация проекта | Все |
| BUN_RENDERING.md | Подробное руководство по встроенным методам рендера | Разработчики |
| BUN_CAPABILITIES.md | Итоговая сводка из 10 встроенных возможностей | 快速справка |
| DOCS_INDEX.md | Этот файл - индекс всей документации | Навигация |
🚀 Быстрый старт
Установка и запуск
bun install
bun run dev
Сервер запустится на http://localhost:3002
📚 Что изучить в каком порядке
1️⃣ Новичкам (начните отсюда)
1. README.md - Структура проекта и основные маршруты
2. BUN_CAPABILITIES.md - 10 встроенных возможностей
3. Попробуйте демо маршруты: /demo/*
2️⃣ Разработчикам (углубленное изучение)
1. BUN_RENDERING.md - Подробное сравнение методов
2. src/bun-rendering-examples.ts - Примеры кода
3. src/bun-rendering-guide.ts - Теоретическое описание
3️⃣ Расширению проекта
1. README.md → Раздел "Как расширять"
2. Добавьте свои обработчики в src/handlers/
3. Создавайте новые middleware в src/middleware/
🎯 Встроенные возможности Bun (Топ 10)
Все 10 возможностей на одной странице:
✅ 1. Template Literals - Самый быстрый HTML рендер (0.1ms)
✅ 2. JSX/TSX компиляция - Встроенная без конфигурации
✅ 3. React SSR - renderToString() из коробки
✅ 4. Bun.file() - Супер быстрая работа с файлами
✅ 5. Streaming API - Web Standard потоки
✅ 6. JSON оптимизация - Встроенная V8 оптимизация
✅ 7. Web Standards API - Request, Response, Headers и т.д.
✅ 8. TypeScript - Встроенная компиляция
✅ 9. HTTP кеширование - Cache-Control, ETag
✅ 10. Cookie поддержка - Set-Cookie из коробки
Рекомендация: Используйте Template Literals в 80% случаев!
🧪 Демонстрационные маршруты
Все примеры встроенных возможностей доступны по URL:
GET /demo/fast-render - Быстрый HTML рендер
GET /demo/dynamic-data - Динамический контент (таблица)
GET /demo/optimized-json - JSON с оптимизацией
GET /demo/streaming - Streaming контент
GET /demo/cached-asset - Кеширование браузером
GET /demo/cookie - Установка Cookie
GET /demo/all - Информация о всех методах
Тестирование в терминале:
curl http://localhost:3002/demo/fast-render
curl http://localhost:3002/demo/all | jq
📊 Производительность методов рендера
| Метод | Скорость | Когда использовать |
|---|---|---|
| Template Literals | ⚡⚡⚡ 0.1ms | 80% случаев |
| Bun.file() | ⚡⚡⚡ 0.05ms | Статические файлы |
| Streaming | ⚡⚡⚡ 0.05ms | Большие файлы |
| React SSR | ⚡ 2-5ms | Компоненты |
| HTML Builder | ⚡⚡ 0.2ms | Специальные |
🏗️ Структура проекта
src/
├── index.ts # Точка входа + маршруты
├── server.ts # Основной сервер
├── router.ts # Маршрутизация
├── middleware.ts # Система middleware
├── render.ts # SSR рендер
├── utils.ts # Утилиты
├── types.ts # TypeScript типы
│
├── handlers/ # Обработчики маршрутов
│ ├── homeHandler.ts # Главная страница
│ └── apiHandler.ts # API endpoints
│
├── middleware/ # Middleware
│ ├── builtIn.ts # Встроенные (logging, CORS и т.д.)
│ └── advanced.ts # Продвинутые (caching, validation)
│
├── components/ # React компоненты (если используются)
│ ├── Layout.tsx
│ └── pages/
│ └── HomePage.tsx
│
├── bun-rendering-guide.ts # Теория встроенных возможностей
└── bun-rendering-examples.ts # Примеры встроенных возможностей
💻 Основные маршруты сервера
API Endpoints
GET / - Главная страница (HTML)
GET /api/hello - Приветствие (JSON)
GET /api/status - Статус сервера (JSON)
POST /api/echo - Эхо данных (JSON)
Demo маршруты
GET /demo/fast-render - Пример Template Literals
GET /demo/dynamic-data - Пример динамического контента
GET /demo/optimized-json - Пример JSON оптимизации
GET /demo/streaming - Пример Streaming
GET /demo/cached-asset - Пример кеширования
GET /demo/cookie - Пример Cookie
GET /demo/all - Все методы в одном
🔧 Технический стек
- Runtime: Bun (встроенный)
- Язык: TypeScript
- Framework: Встроенные Web APIs (без фреймворка)
- Middleware: Собственная реализация
- Routing: Собственная реализация
- Templates: Template Literals (встроенный JS)
📖 Рекомендуемый порядок чтения
День 1: Основы
- Запустить сервер:
bun run dev - Посетить http://localhost:3002
- Пройтись по всем
/demo/*маршрутам - Прочитать BUN_CAPABILITIES.md
День 2: Углубление
- Прочитать BUN_RENDERING.md
- Изучить src/bun-rendering-examples.ts
- Тестировать примеры через curl/Postman
- Экспериментировать с Template Literals
День 3: Расширение
- Создать новый endpoint в src/handlers/
- Добавить свой middleware в src/middleware/
- Зарегистрировать в src/index.ts
- Протестировать
🎁 Преимущества встроенных решений Bun
| Преимущество | Описание |
|---|---|
| Производительность | Template Literals 0.1ms vs React 2-5ms |
| Простота | Не нужны фреймворки/библиотеки |
| Встроенность | Все из одного runtime |
| Типизация | TypeScript встроенный |
| Стандарты | Web Standards API |
| Минимум кода | Не нужно писать много boilerplate |
❓ Частые вопросы
Какой метод выбрать?
→ Template Literals в 80% случаев, React когда нужны компоненты
Какой проект это хорошо для?
→ APIs, SSR сервера, микросервисы, edge computing
Нужны ли фреймворки?
→ Нет! Встроенные Web APIs достаточно
Как это работает без npm пакетов?
→ Все встроено в Bun runtime
Можно ли использовать React?
→ Да! Установите через bun install react react-dom
📞 Поддержка
Для подробной информации смотрите:
- BUN_RENDERING.md - Подробное руководство
- BUN_CAPABILITIES.md - Быстрая справка
- README.md - Полная документация
- src/ - Исходный код с комментариями
🚀 Следующие шаги
- ✅ Запустить
bun run dev - ✅ Посетить http://localhost:3002
- ✅ Изучить
/demo/*маршруты - ✅ Прочитать BUN_CAPABILITIES.md
- ✅ Создать собственный endpoint
Happy Bun coding! 🎉