2021-10-01から1ヶ月間の記事一覧
Go言語でスライスや文字列をよく使うが、コード上ではアドレスが巧みに隠蔽されて、安全なプログラミングができるようになっている。しかし、たまに、アドレスを使ってユニーク性を調べたいときがある。その方法についてメモする。
gRPCの通信ををSSL/TLSの暗号化で保護するとともに、クライアント認証をX.509証明書で行えるように、Tkrzw-RPCのサーバとクライアントライブラリを改良した。gRPCではSSL/TLSだけでなく、ALTSやToken-based認証も使えるのだが、まずは手軽かつ歴史のあるなSS…
データベースライブラリTkrzwのgRPCサービスにJavaで接続して操作するためのライブラリを実装した。これにて、当初予定していたC++、Java、Python、Ruby、Goの全てを網羅したので、gRPCのクライアントライブラリを書きまくる旅は終了だ。この記事では、簡単…
gRPCのJava版のチュートリアルには、Gradleを使ったビルド方法だけが説明されている。Java界隈ではMavenやGradleがビルドツールとしてよく使われているのは知っているが、私はmakeが使いたい。よって、まずはビルドツールを使わずに個々の手順を進める方法を…
前回の記事で、メッセージキューを実現するための要素技術について論じた。今回は、それを実際にTkrzw-RPCのサーバに組み込んで、分散処理を行うデモを紹介する。Go、Python、Rubyが一気に出てくるお得な記事だ。
単純なkey-valueストレージであるDBMを使ってメッセージキューを実現するにはどうすればよいかという思考実験をした上で、実装もしてしまおうという企画。初回は、機能要件と要素技術を検討する。
Tkrzw-RPCのクライアントがC++、Python、Ruby、Goで出揃ったので、簡単な性能テストをしてみた。以下は1スレッドのスループットをグラフにしたものだ。単位はQPS。
PythonとRubyのクライアントライブラリを書いたので、次はGoだ。gRPC界隈ではGoがよく使われるようなので、優先度高めで着手した。詳しいことはAPI文書をご覧いただきたいが、簡単な使い方をここでも紹介する。
TkrzwのFedora用のパッケージを作ってくれている人から不具合報告を貰っていた。その不具合はPowerPC 64ビットの特定の環境でしか起こらないらしい。その不具合が手元で再現できないので、何が問題なのかもわからず、しばらく直せないでいた。その原因をやっ…
前回の記事でPythonのクライアントライブラリを紹介したが、Rubyのクライアントライブラリも実装できたので、今回はそれを紹介する。詳しいことはAPI文書をご覧いただきたい。
DBサービスを作ろうの一連の連載が終了し、無事DBサービスが完成したので、クライアントライブラリを作る旅に出ている。とりあえずPython版ができたので、使い勝手などを説明したい。Tkrzw-RPC本体については、スライドの方をご覧頂きたい。