ncatbot(NapCat Python SDK)

Library

概要

ncatbot は「NapCat Python SDK」として公開されている、OneBot11 協議準拠の QQ ボット用 SDK です。Python の非同期機能(asyncio)を活かした設計で、イベントの受信・処理やメッセージ送受信、コネクション管理を簡潔に扱えるようにしています。軽量で始めやすく、サンプルや設定ファイル、CI/プリコミット設定も含まれており、ローカル開発から本番デプロイまでのワークフローを想定した構成になっています。拡張性の高いプラグイン/ハンドラを備え、OneBot 準拠のブリッジやプラットフォームにも適応可能です。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 1
  • ウォッチャー数: 5
  • コミット数: 30
  • ファイル数: 18
  • メインの言語: Python

主な特徴

  • OneBot11 協議準拠の QQ ボット用 Python SDK(非同期対応)
  • シンプルなイベントハンドラ/プラグイン構造で拡張しやすい
  • 開発用の設定、プリコミット、貢献ガイドなど開発ワークフローをサポート
  • 軽量で素早くボットを立ち上げられるサンプル/ドキュメントを同梱

技術的なポイント

ncatbot は Python(asyncio)を中心に設計されており、イベント駆動でボットの挙動を記述できる点が大きな特徴です。OneBot11 プロトコルに準拠することで、各種 OneBot 準拠の接続ブリッジ(HTTP/WebSocket)と連携しやすく、送受信されるイベントを抽象化してハンドリングできます。非同期 I/O を利用するため多接続や高頻度イベントでもスケーラブルに動作させやすく、ハンドラはコルーチンとして定義することで I/O をブロックせずに処理を継続できます。

設計面ではプラグインやミドルウェア的な拡張ポイントを用意している想定で、コマンド登録やフィルタ、イベント前後の共通処理(ログ、認可、変換など)を差し込めるようになっています。型注釈とドキュメントが整備されていれば、IDE の補完や静的解析(mypy)を活用して開発効率を高められます。CI/プリコミット設定(.pre-commit-config.yaml)が含まれているためコードスタイルや簡単な自動チェックをリポジトリ単位で管理でき、品質維持が容易です。

さらに、軽量なコアとプラグイン群により、最小構成で稼働させつつ必要に応じて機能追加できる点が実用的です。ライセンスが同梱されているため利用条件も明確で、CONTRIBUTING.md によって外部貢献がしやすい運用方針が見えます。これらはコミュニティ主導のボット基盤としての採用やカスタム機能の組み込みに向いています。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .github: dir
  • .gitignore: file
  • .pre-commit-config.yaml: file
  • CONTRIBUTING.md: file
  • LICENSE: file

…他 13 ファイル

(ソースコードは Python を中心に、設定・ドキュメント・CI 関連のファイルがまとまっています。実際のエントリポイント、モジュール構成、サンプルはリポジトリ内の README やソースを参照してください。)

まとめ

OneBot11 準拠で素早く QQ ボットを作れる、拡張性の高い Python SDK です。(約50字)

リポジトリ情報:

READMEの抜粋:

🚀 ncatbot


![logo.png](https://socialify.git.ci/ncatbot/NcatBot/image?custom_description=ncatbot+%EF%BC%8C%E5%9F%BA%E4%BA%8E+OneBot11%E5%8D%8F%E8%AE%AE+%E7%9A%84+QQ+%E6%9C%BA%E5%99%A8%E4%BA%BA+Python+SDK%EF%BC%8C%E5%BF%AB%E9%80%9F%E5%BC%80%E5%8F%91%EF%BC%8C%E8%BD%BB%E6%9D%BE%E9%83%A8%E7%BD%B2%E3%80%82&description=1&font=Jost&forks=1&issues=1&logo=https%3A%2F%2Fimg.remit.ee%2Fapi%2Ffile%2FAgACAgUAAyEGAASHRsPbAAO9Z_FYKczZ5dly9IKmC93J_sF7qRUAAmXEMRtA2ohX1eSKajqfA