Перевод документации к Vibe.d. Часть 1.
Сначала установите диспетчер пакетов DUB, чтобы он обрабатывал загрузку и создание vibe.d и производных приложений. В системах, отличных от Windows, необходимо установить ряд дополнительных зависимостей. Подробную информацию см. в описании проекта на GitHub.
Ручная сборка (например, с использованием RDMD) является альтернативой, но вы должны убедиться, что внешние библиотеки прилинкованы (например, libevent) и что идентификатор версии для используемого драйвера передается компилятору (например, -version=VibeLibeventDriver). Посмотрите dub.sdl vibe.d, чтобы определить, как осуществлять сборку на определенной платформе, или, как вариант, запустите DUB с ключом –v, чтобы увидеть фактическую командную строку компилятора.
Самый простой способ начать — запустить следующую команду из каталога проектов:
cd/path/to/my/projects
dub init <имя-проекта> -t vibe.d
Эта команда создаст новый каталог с заданным именем и базовую структуру каталогов, которая рекомендуется для проектов vibe.d. Запустив его, вы запустите HTTP-сервер на порту 8080, служащий простой текстовой страницей. В качестве следующего шага вы можете продолжить редактирование файла source/app.d. Если вы хотите опубликовать свой проект, вы также должны отредактировать файл dub.json / dub.sdl и правильно заполнить все поля, включая поле «license».
После того, как у вас есть проект, просто запустите DUB из корневого каталога проекта, он получит все зависимости, скомпилирует приложение и запустит его:
cd path/to/project
dub
Performing «debug» build using dmd for x86_64.
vibe-d 0.7.26: target for configuration «libevent» is up to date.
vibedtest ~master: building configuration «application»…
Linking…
To force a rebuild of up-to-date targets, run again with —force.
Running ./vibedtest
Listening for requests on http://::1:8080
Listening for requests on http://127.0.0.1:8080
Please open http://127.0.0.1:8080/ in your browser.
Рекомендуемая структура проекта
Рекомендуемая структура каталогов для проекта, которую устанавливает команда «dub init», разделяется на три базы:
appname/
source/
app.d
public/
images/
styles/
style.css
views/
layout.dt
index.dt
dub.json
Для простого веб-приложения файл app.d может выглядеть примерно так:
import vibe.d; void index(HTTPServerRequest req, HTTPServerResponse res) { res.render!("index.dt", req); } shared static this() { auto router = new URLRouter; router.get("/", &index); auto settings = new HTTPServerSettings; settings.port = 8080; listenHTTP(settings, router); }
Простой файл app.d с минимальной маршрутизацией
В поддиректории «views» автоматически ищутся шаблоны, созданные с помощью render. Два шаблона в структуре, к примеру, могут выглядеть так:
Пример layout.dt:
doctype html html head title Example page body block body
Пример index.dt:
extends layout block body h1 Example page - Home p Hello, World!
Эта структура использует функцию блоков/расширений шаблонизатора Diet. Дополнительные возможности шаблонизатора см. в документации к шаблонизатору Diet. Наконец, «dub.json» позволяет диспетчеру пакетов vibe.d автоматически загружать и компилировать библиотеки зависимостей. Этот файл также предоставит описание, которое необходимо для последующей установки вашей собственной библиотеки в реестр общедоступных расширений.
Пример dub.json:
{ "name": "appname", "description": "My fabulous new app", "copyright": "Copyright (C) 2000 Me. All rights reserved.", "license": "AGPL-3.0", "homepage": "http://appname.org", "authors": ["Hans Wurst"], "dependencies": { "vibe-d": "~>0.7.23" }, "versions": ["VibeDefaultMain"] }
DUB также обеспечивает поддержку нового альтернативного синтаксиса с использованием SDLang, который поддерживает комментарии и значительно более компактен. В этом случае используемое имя файла — «dub.sdl».
Пример dub.sdl
name "appname" description "My fabulous new app" copyright "Copyright (C) 2000 Me. All rights reserved." license "AGPL-3.0" homepage "http://appname.org" authors "Hans Wurst" dependency "vibe-d" version="~>0.7.23" versions "VibeDefaultMain"
Примеры проектов
В репозитории Git хранится библиотека примеров проектов. Большинство вещей, не охваченных в этом документе, можно найти там в виде кода: Примеры проектов.
Чтобы запустить примеры локально, вы можете загрузить репозиторий в виде zip-файла или использовать Git для получения примеров:
git clone https://github.com/vibe-d/vibe.d.git
Чтобы запустить пример «http_server», введите:
dub run —root = vibe.d/examples/http_server