いまのGoは、バイナリ内にパッケージマネージャが同梱されていることを知ったのでやりなおし。 なんていらなかった。だと、が必要だったり、ディレクトリ構成もそこそこ縛られたりするし、コマンドにバンドルされているのほうが良かった。 環境要件 Mac OS X 10.13.6 GVMのインストール GVMはNVMとかと同じ、ランタイムのバージョンマネージャ。 Goのインストール GVMを使って、Goをインストールする。 では、をつけないと、ソースからビルドしてインストールしようとするのですが、このビルド自体にGo…
RustでWebサーバーを書いていたのですが、このところ非同期IOまわりの実装が活発なようで、シンプルに書こうと思うと、まだ発展途上な部分が目立ったので、筆休めにGoをはじめてみました。 というわけで環境構築用の自分用メモです。 環境要件 Mac OS X 10.13.6 GVMのインストール GVMはNVMとかと同じ、ランタイムのバージョンマネージャ。 Goのインストール GVMを使って、Goをインストールする。 では、をつけないと、ソースからビルドしてインストールしようとするのですが、このビルド自体にGoが使われるため、初めてインストールする場合はオプションが必要になります。 depのインストール はパッケージマネージャ。Mavenとか、NPMとかと同じ。brew, sh, go等でインストールできます。dep…
Rustでコレクション操作をしてみようとしたところ、基本的な部分ではありつつも、けっこう躓いたのでメモ。公式リファレンスが充実しているので、そちらを確認するのも良いですが、型引数が必要な箇所や、実際にそれをどう指定するのかまでは、例がまとまっていなかったので。 HTTPリクエストで与えられたクエリ文字列を、JSONに変換してレスポンスする、というケースを例にします。 今回のコードサンプルは以下。 https://github.com/yo1000/rust-hyper/tree/389b425ca8 要件 Rust 1.31.1 Cargo 1.31.0 コード例 今回はコード例から。コード内で使っている操作を個別に補足説明していくスタイル。 split…
Webサーバーをつくるときは、Hyperというのがデファクトらしいので、これを使ってみます。(Webアプリケーションフレームワークとしてはまた別で、IronとかRocketとかがある。) 今回のコードサンプルは以下。 https://github.com/yo1000/rust-hyper/tree/705dc5ca10 要件 Rust 1.31.1 Cargo 1.31.0 プロジェクトの作成 プロジェクトを作成して、プロジェクトルートに移動しておきます。 依存関係 を編集して、と、JSONを扱う場合によく使用されるを依存に追加しておきます。 エンドポイントの記述 ほんとはもう少しちゃんとヘッダー構築したほうが良いのかもしれないけど、まあちゃんと動きます。はステータスでJSONを返却し、それ以外のリクエストはステータスとしています。 Web…