豪鬼メモ

一瞬千撃

2021-10-01から1ヶ月間の記事一覧

Go言語におけるスライスや文字列のアドレス検査と特異値

Go言語でスライスや文字列をよく使うが、コード上ではアドレスが巧みに隠蔽されて、安全なプログラミングができるようになっている。しかし、たまに、アドレスを使ってユニーク性を調べたいときがある。その方法についてメモする。

gRPCでのSSL暗号化と認証

gRPCの通信ををSSL/TLSの暗号化で保護するとともに、クライアント認証をX.509証明書で行えるように、Tkrzw-RPCのサーバとクライアントライブラリを改良した。gRPCではSSL/TLSだけでなく、ALTSやToken-based認証も使えるのだが、まずは手軽かつ歴史のあるなSS…

gRPCのJavaクライアントライブラリ

データベースライブラリTkrzwのgRPCサービスにJavaで接続して操作するためのライブラリを実装した。これにて、当初予定していたC++、Java、Python、Ruby、Goの全てを網羅したので、gRPCのクライアントライブラリを書きまくる旅は終了だ。この記事では、簡単…

gRPCのJava版のアプリケーションを手動またはmakeでビルドする方法

gRPCのJava版のチュートリアルには、Gradleを使ったビルド方法だけが説明されている。Java界隈ではMavenやGradleがビルドツールとしてよく使われているのは知っているが、私はmakeが使いたい。よって、まずはビルドツールを使わずに個々の手順を進める方法を…

DBMでメッセージキューイング その1 メッセージキューサービスの利用法

前回の記事で、メッセージキューを実現するための要素技術について論じた。今回は、それを実際にTkrzw-RPCのサーバに組み込んで、分散処理を行うデモを紹介する。Go、Python、Rubyが一気に出てくるお得な記事だ。

DBMでメッセージキューイング その0 準備

単純なkey-valueストレージであるDBMを使ってメッセージキューを実現するにはどうすればよいかという思考実験をした上で、実装もしてしまおうという企画。初回は、機能要件と要素技術を検討する。

gRPCクライアントの各言語の性能比較

Tkrzw-RPCのクライアントがC++、Python、Ruby、Goで出揃ったので、簡単な性能テストをしてみた。以下は1スレッドのスループットをグラフにしたものだ。単位はQPS。

Tkrzw-RPCのGoクライアントライブラリ

PythonとRubyのクライアントライブラリを書いたので、次はGoだ。gRPC界隈ではGoがよく使われるようなので、優先度高めで着手した。詳しいことはAPI文書をご覧いただきたいが、簡単な使い方をここでも紹介する。

Fedoraパッケージ対応とmmapに関する話

TkrzwのFedora用のパッケージを作ってくれている人から不具合報告を貰っていた。その不具合はPowerPC 64ビットの特定の環境でしか起こらないらしい。その不具合が手元で再現できないので、何が問題なのかもわからず、しばらく直せないでいた。その原因をやっ…

Tkrzw-RPCのRubyクライアントライブラリ

前回の記事でPythonのクライアントライブラリを紹介したが、Rubyのクライアントライブラリも実装できたので、今回はそれを紹介する。詳しいことはAPI文書をご覧いただきたい。

Tkrzw-RPCのPythonクライアントライブラリ

DBサービスを作ろうの一連の連載が終了し、無事DBサービスが完成したので、クライアントライブラリを作る旅に出ている。とりあえずPython版ができたので、使い勝手などを説明したい。Tkrzw-RPC本体については、スライドの方をご覧頂きたい。