Это фреймворк для создания web-приложений на языке Haskell. Проект в стадии активной разработки.
Состоит фреймворк из следующих частей:
- HTTP сервер (т.е. приложение на этом фреймворке будет общаться с внешним миром по HTTP, "апач не нужен", хотя для отдачи статики или управления виртуальными хостами имеет смысл поставить nginx/lighthttpd)
- Модуль для работы с Cookies
- Модуль для работы с пользовательскими сессиями (в настоящий момент, данные сессий хранятся в файлах, но можно написать другой backend)
- Модуль для кэширования чего угодно (бэкенды - filesystem, memcached и fake)
- URL dispatcher
- Модуль для работы с БД (использует HDBC, в настоящий момент полноценно работает только с PostgreSQL, sqlite3 поддерживает не все запросы, бэкенд MySQL есть, но не протестирован)
- EDSL для описания моделей данных (таблиц БД)
- EDSL для формирования SQL-запросов по моделям данных
- Templating Engine - шаблоны пишутся в отдельных файлах с синтаксисом a la Django, но при сборке приложения компилируются в результирующий бинарник
- Подсистема обработки форм (генерация HTML формы по объекту, валидация форм, показ недозаполненной формы)
В директории Blog/ - тестовое приложение ("типо блог"), не надо предъявлять к его функционалу претензий, его задача - протестировать работу фреймворка.
Depends on cabal packages: hdbc, hdbc-mysql, hdbc-postgresql, hdbc-sqlite3, haskell-memcached, network, http, MissingH, Takusen, hgettext, data-hash. Компилируется ghc 6.10.
Текущая версия README.ru
Документация (haddock)
Страничка проекта
Git репозиторий: git://iportnov.ru/framework.git, он же через web
Предложения/пожелания/багрепорты/etc приветствуются. Хотелось бы также найти желающих поучаствовать в разработке (самого фреймворка или хотя бы приложений на нём - чтобы выявить места, над которыми требуется работа). Для этого не обязательно быть профессионалом в Haskell: я сам ещё даже не newbie (в смысле, ещё не написал свой monad tutorial) Зато это, имхо, может быть познавательно: у меня используются чуть ли не все "фишки" современного haskell-а