Go

辞書ベースの日本語 Tokenizer - Kuromoji, Sudachi, Fugashi, Kagome, Lindera

辞書をベースに処理する日本語 Tokenizer のいくつかをコードを書いて実行してみました。 (a) Lucene Kuromoji (b) atilika Kuromoji (c) Sudachi (d) Kuromoji.js (e) Fugashi (f) Kagome (g) Lindera 今回は以下の文を処理して分割された単語と品詞を出力…

AWS Lambda のランタイム API サーバーを自作して関数ハンドラーをローカル実行

AWS Lambda では、(Lambda 関数の)ランタイムがランタイム API(ランタイムインターフェース)から呼び出しイベントを受け取って、関数ハンドラーを実行し、その結果をランタイム API へ返すような流れで処理が実施されているようです。 AWS Lambda 実行環…

Go言語で GraphQL - graph-gophers/graphql-go で Interface を試す

前回の graph-gophers/graphql-go を使って、GraphQL の Interface を扱ってみます。 ソースは http://github.com/fits/try_samples/tree/master/blog/20210125/ はじめに GraphQL には Interface と Union という類似の機能が用意されており、共通のフィー…

Go言語で GraphQL - graph-gophers/graphql-go で Query, Mutation, Subscription を試す

Go言語で GraphQL を扱うライブラリはいくつかありますが、今回は下記を試しました。 graph-gophers/graphql-go 文字列として定義した GraphQL スキーマを使うようになっており、それなりに使い易いと思います。 今回のソースは http://github.com/fits/try_…

Go言語でインターフェースのメソッドを列挙する

Go

Go 言語のリフレクションで型情報を扱う Type は以下で取得できます。 func TypeOf(i interface{}) Type 引数 i には値を指定する事になりますが、インターフェースの型情報を取得したい場合はどうするのか気になって試してみたところ、以下で取得できました…

Docker の containerd ランタイムからイベントを受信

Docker の containerd ランタイムからイベントを受信する処理を Go 言語で実装してみました。 containerd 今回のコードは http://github.com/fits/try_samples/tree/master/blog/20201206/ はじめに ここでは、snap でインストールした Docker の containerd…

Go言語と Rust で Mutex による排他制御

以下の 3通りを Go 言語と Rust でそれぞれ実装してみました。 (a) 排他制御なし (b) Mutex による排他制御 (c) RWロック(Readers-writer lock)による排他制御 サンプルコードは http://github.com/fits/try_samples/tree/master/blog/20201122/ Go 言語の…

gRPC Server Reflection のクライアント処理

gRPC Server Reflection を呼び出す処理を Node.js で実装してみました。 ソースは http://github.com/fits/try_samples/tree/master/blog/20191008/ 事前準備(サーバー実装) まずは、gRPC Server Reflection を有効にしたサーバー処理を用意します。 Node…

Go で Kafka の Consumer クライアント

下記ライブラリをそれぞれ使って Go 言語で Apache Kafka の Consumer クライアントを作成してみました。 sarama sarama-cluster 今回のソースは http://github.com/fits/try_samples/tree/master/blog/20170506/ Sarama の場合 まずは sarama を使ってみま…