0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GNU Artanis 紹介

Posted at

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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?