gawamango は Cursor の助けを借りて実装したローカル MongoDB プロキシサーバーです。

MongoDB の Wire Protocol がどのようなものかをより直感的に理解するために開発しました。

使い方は非常に簡単です(v0.3.6 に基づく):

1
2
3
4
go install github.com/ringsaturn/gawamango/cmd/gawamango@latest

# ローカルで実行
OTEL_TRACES_EXPORTER=stdout gawamango -listen localhost:27018 -target localhost:27017

これでプロキシサーバーのポートを直接呼び出せます:

1
2
3
4
5
from pymongo import MongoClient

client = MongoClient("mongodb://localhost:27018/")

client.foo.bar.insert_one({"name": "John"})

このプロジェクトはまだ非常にシンプルです。時間と余力が許せば、MongoDB のプロトコルや BSON 構造に興味がある限り、改良を続けるかもしれません。公式の MongoDB ライブラリを一切使用せずに、正常に動作する MongoDB プロキシサーバーを実装することを目指しています。