22 июля, 2007

KLone: каркас для web-программирования на языке C.

KLone - это фреймворк для программирования веб-приложений, который расширяет простой HTML языком С, и помещает весь код на сервере в один бинарный файл.

.deb пакет
KLone доступен в Debian GNU/Linux 4.0 "Etch" и Ubuntu Linux "Edgy", "Feisty Fawn", "Gutsy Gibbon".
~$ apt-get install klone-package


PHP очень популярен своим стилем программирования, смешиванием HTML с исходным кодом, заключенным в теги <?php ... ?>. Существует множество инструментов и каркасов для веб-программирования на других языках, таких как Perl и Python, совершенно удивительный выбор языка программирования, который вы можете использовать взамен вышеперечисленных, называется C.

Посмотрим на пример как создать простое веб-приложение.

Создадим директорию, в которой будем работать.
~$ make-klone-project create -p myhello
~$ cd myhello-0.1

В директории проекта будет храниться несколько файлов и директорий . Одна из важнейших папок будет Debian/, в которой будут храниться файлы для генерации .deb пакета, содержащего веб-аппликацию. К этому вернемся чуть позже. Сейчас же давайте сосредоточимся на другой интересной директории userdata/.
~$ cd userdata
~$ mkdir etc
~$ cd etc

Создаем файл kloned.conf и редактируем его.
~$ nano kloned.conf



server_list my_http
allow_root yes

my_http
{
type http
addr.type IPv4
addr.port 8880
dir_root /www
}


Теперь мы готовы приступить к созданию непосредственно нашего приложения.

$ cd ..
$ mkdir www
$ cd www


Создаем и редактируем файл index.kl1. Любой файл с расширением .kl1 будет относиться к HTML/C приложениям.

~$ nano index.kl1


<%!
#include
time_t now;
%>
<html>
<head><title>Hello World</title></head>
<body>
<h1>Hello World</h1>
<br>
<%
now = time(0);
io_printf(out, "Time is now %sn", ctime(&now));
%>
</body>
</html>

Теперь вернемся к корневой директории проекта и создадим kloned сервер:

~$ kloned-build -o myapp userdata
~$ ./myapp -F

Сервер не запускается как демон, поэтому пользуем параметр -F. Теперь Вы можете посмотреть веб-аппликацию с помощью браузера @ http://localhost:8880/. Вы увидите текущую дату :) Это еще не все. Остановите аппликацию, которую Вы только то запустили, запустите ~$ apt-get install dpkg-dev, далее:


~$ dpkg-buildpackage -rfakeroot
~$ sudo dpkg -i ../myhello_0.1*deb

Вы только что установили .deb пакет, который содержит веб-аппликацию =)

Еще примеры

Если Вы хотитет увидеть больше примеров использования KLone'а, посетите сайт KoanLogic'а.

2 комментария:

энерджи комментирует...

Занятно, надо будет попробовать.

va1e комментирует...

@энерджи пишет...
Занятно, надо будет попробовать.
Конечно. интересно будет узнать о результатах ;)