GNU Artanis(グヌー アルタニス)は、GNUプロジェクトの一部として開発された、Scheme言語に基づく軽量かつ柔軟なウェブアプリケーションフレームワークです。Artanis は GNU Guile を使用して構築されており、以下のような特徴を備えています。
特徴
-
軽量で高速
- Scheme ベースで設計されているため、シンプルかつ効率的な動作が可能です。リソースの消費を抑えながら、高速な処理を実現します。
-
柔軟なルーティングシステム
- URL ルーティングの設定が簡単で、直感的なコードで複雑なアプリケーションを構築することができます。
-
RESTful 設計のサポート
- RESTful な API を簡単に実装できるため、モダンなウェブ開発のニーズに応えます。
-
コルーチンによる非同期処理
- 非同期I/Oをサポートしており、高負荷環境でも効率的な処理が可能です。
-
カスタマイズ可能
- 開発者のニーズに応じて、柔軟に拡張やカスタマイズができる設計になっています。
主な用途
- 小規模から中規模のウェブアプリケーションの開発
- API サーバの構築
- 自動化ツールやマイクロサービスの実装
- コミュニティとサポート
- GNU Artanis はオープンソースソフトウェアであり、自由に利用・改良が可能です。コミュニティを通じて、開発者同士がサポートし合い、新しい機能の追加やバグ修正を進めています。
コードの見た目はどうなるのか
(use-modules (artanis artanis))
(init-server)
(get "/hello" (lambda () "hello world"))
;; run it
(run #:port 8080)
curl localhost:8080/hello
==> hello world
GNU Artanis 1.0.0 のビルド方法
私のビルド方法は Ubuntu 24.04 に基づいています。ただし、この投稿に従って、お好みのディストリビューションで実行することも可能です。
依存関係
以下のコマンドを使用して必要な依存関係をインストールしてください:
sudo apt install texinfo guile-3.0 guile-3.0-dev build-essential automake git
sudo apt install autoconf libtool libmariadb-dev-compat libmariadb-dev libnss3
sudo apt install libnss3-dev gettext redis redis-server libcurl4-openssl-dev
Artanis-0.6の重要な依存関係とそのバージョンは以下の通りです:
- guile-3.0.9
- guile-dbi-2.1.8
- guile-dbd-mysql-2.1.8
- guile-curl-0.9
- guile-redis-2.2.0
- guile-json-4.7.3
この記事では MariaDB を選択しているため、guile-dbd-mysql をインストールする必要があります。
ビルド依存関係
guile-dbi-2.1.8 と guile-dbd-mysql-2.1.8
以下は guile-dbi-2.1.8 および guile-dbd-mysql-2.1.8 のビルド手順です。この2つの依存関係は同じリポジトリ内にあるため、連続してビルドします。
git clone https://github.com/opencog/guile-dbi.git
cd guile-dbi
git checkout guile-dbi-2.1.8
cd guile-dbi
./autogen.sh
./configure --prefix=/usr
make -j5
sudo make install
ldconfig
cd ..
git checkout guile-dbd-mysql-2.1.8
cd guile-dbd-mysql
./autogen.sh
./configure --prefix=/usr
make -j5
sudo make install
sudo ldconfig
guile-curl-0.9
guile-curl-0.9
以下は guile-curl-0.9 のビルド手順です:
git clone https://github.com/spk121/guile-curl.git
cd guile-curl
git checkout v0.9
./bootstrap && ./configure --prefix=/usr
make -j5
sudo make install
sudo ln -s /usr/lib/guile/3.0/extensions/libguile-curl.* /usr/lib/
sudo ldconfig
Debian/Ubuntu 環境では、ソフトリンクを作成する必要があります。そうしないと、ライブラリが認識されない可能性があります。
guile-redis-2.2.0
以下は guile-redis-2.2.0 のビルド手順です:
git clone https://github.com/aconchillo/guile-redis.git
cd guile-redis
git checkout -b 2.2.0
autoreconf -vif
./configure --prefix=/usr
make -j5
sudo make install
sudo ldconfig
guile-json-4.7.3
以下は guile-json-4.7.3 のビルド手順です:
git clone https://github.com/aconchillo/guile-json.git
cd guile-json
git checkout -b 4.7.3
autoreconf -iv
./configure --prefix=/usr
make -j5
sudo make install
sudo ldconfig
Artanis-1.0.0 のビルド
以下はArtanis-0.6のビルド手順です:
wget -c https://ftp.gnu.org/gnu/artanis/artanis-0.6.tar.gz
tar xf artanis-0.6.tar.gz
cd artanis-0.6
./autogen.sh # このステップを省略するとconfigureスクリプトが生成されません
mkdir -p build
cd build
../configure --prefix=/usr
make -j5
sudo make install
テスト
テストを実行するには、以下のコマンドを使用します:
make test