[1]  [DFN[[RUBY[manakai] [まなかい]]]] は、
[[Perl]] で [[822]] メッセージ ([[電子メイル]]や[[電子ニュース]]のメッセージ)
や [[XML]] [[実体]]などを取扱うためのモジュール群です。

@@ この wiki 頁の内容は古くなっています。 Web サイト
<https://suika.suikawiki.org/www/manakai-core/doc/web/> をご覧ください。 

[2] Perl で使える 822/[[MIME]] 処理モジュールは他にも色々ありますが、
どれも不必要にプロトコルを意識することなく使えるものとは言えません。
たとえば、 [CODE(822)[[[From]]]] 欄の 
[CODE(ABNF)[[[display-name]]]] の値を指定する時に
[CODE(ABNF)[[[token]]]] と [CODE(ABNF)[[[quoted-string]]]]
は自動的にどちらが適当か選んで欲しいですし、
本文が [CODE(charset)[[[ISO-2022-JP]]]] でも
[CODE(charset)[[[UTF-8]]]] でも外側からは同じように扱える方が嬉しいです。

manakai の [CODE(perl)[[[Message::Entity]]]] 系モジュール群がこれを実現します。

* 主な構成モジュール

[3] いつの間にか大所帯化していますが...
- [CODE(perl)[Message::Entity]] 系: 822 メッセージを扱います。
- [CODE(perl)[[[Message::Markup::XML]]]] 系: 
[[XML]] 文書を扱います。
- [CODE(perl)@en[[[Message::DOM]]]]系:
[[DOM]]の実装です。
- [CODE(perl)[[[Message::Util::Formatter]]]] 系:
雛形と引数から結果を作るための汎用モジュール群です。
- [CODE(perl)[[[Message::Util::Error]]]] 系:
[CODE(perl)[[[Error]]]] モジュールの subclass
で、誤りの型 (種類) を定義して使うことができます。
- [[dis]]: [[モジュール]]本体のコード、[[文書]]、
[[試験]]用コードなどを統合的に管理するシステムです。
[[manakai]]の[[DOM]]実装や[[dis]]自体も[[dis]]で記述されています。
- その他: 支援モジュールなど。


* 入手

[4] CVS repository から入手できます。

<IW:SuikaCVS:"messaging/manakai/">

通常は幹の先端をどうぞ。
大規模な実験はたまに枝でやってます。
安定版は今はありません。
詳しくは [[manakai//CVS]] をご覧下さい。


* ライセンス

[5] [[perlと同じライセンス]]です。

新しい[[モジュール]]は、諸般の都合により[[perlと同じライセンス]]または[[MPL]]/[[GPL]]/[[LGPL]]から選択できるようになっています。


* メモ

[6]
この wiki の manakai//* の文書群の中には古いものが多いので注意してください。

Message::Entity 系 (Message::Field::*, Message::MIME::* など) の開発は現在停止状態です。一応一通り使える状態にはなっています。 (開発者は普段メイル書くのに使っているらしいです。)
この系統は pod がいい加減なので何とかしたいと思っていますが手が回りません。
内部構造も大改造したいのですが、
当分先になるでしょう。

Message::Util::Formatter や Message::Util::Error は [[SuikaWiki 3]] で大々的に使っているので最近までちょくちょくいじっていましたが、大分安定してきました。

Message::Markup::XML 系も SuikaWiki
で使っています。
こちらは今 Parser 書きなおし中です。
[[DOM]] が微妙に実装してありますが使い物にならないので Parser ができたらなんとかします。
([[名無しさん]] [WEAK[2004-04-25 11:52:18 +00:00]])

[7] [CITE@en[wakaba/manakai: (OBSOLETE: See http://manakai.github.io/ ) manakai - Perl modules for Web and Email standards]], [TIME[2023-04-18T06:28:10.000Z]] <https://github.com/wakaba/manakai>
