aptpod Tech Blog

株式会社アプトポッドのテクノロジーブログです

Rust

Rust/eguiで作るデスクトップ業務アプリ

はじめに 今回作成するアプリ eguiとは eguiの特徴 GUI画面作成 egui template の利用 アプリ構造体の修正 GUIパーツの追加 データ送信処理の組み込み Cargo.tomlの編集 サービスに接続するためのコード追加 GUIアプリの動作確認 デスクトップアプリとしての…

Rustにおけるバイト列の効率的な扱い方

aptpod Advent Calendar 2023 の12月5日を担当するintdashグループの大久保です。 弊社の製品のうち、エッジ上で動くものはRustを採用しているものが複数あります。例えば、intdashに接続可能なデバイスを簡単に開発するためデバイス開発キットの基盤であるD…

Rust + bevy で wasm 向けゲーム開発

製品開発グループの大久保です。aptpod Advent Calendar 2022の5日目を担当します。 社内ではRustのエッジ製品への適用が本格化し、接続するデバイスに応じたプラグインのデバイスコネクタやSDK等への広がりを見せています。 個人的にもRustでのゲーム開発に…

Rust+uinputでキー入力カスタマイズ ついでにdebパッケージ化する

aptpod Advent Calendar 2021の3日目を担当しますOTチームの大久保です。 今年はRustのエッジ製品への適用がはじまり、RustでLinuxのシステムコールを呼ぶような処理を実装するような場面が増えました。今回はその一例として、Linux上でキー入力カスタマイズ…

Rustにおける非同期ストリームの関数呼び出しコストを検証する

OTチームの大久保です。 エッジデバイス上でのデータ処理やネットワーク周りの実装に、速度と生産性の両面で優れるRust言語を利用できないかをここ最近は検討しています。特に、tokioのバージョン1.0がリリースされたように、最近はRustの非同期関連のエコシ…

Rust+Quinnで大量のデータを送信する

aptpod Advent Calendar 2020の4日目を担当します、研究開発グループの大久保です。 2日目では、RustとQuinnでechoサーバを作成しました。今回は応用として、Quinnを使って大量のデータを送信し、パフォーマンス評価をしてみたいと思います。弊社内のユース…

Rust+QuinnでQUICのechoサーバを作る

aptpod Advent Calendar 2020の2日目を担当します、研究開発グループの大久保です。 弊社では、新しいプロトコルであるQUICの利用法を調査しています。そこで今回は、RustのQUIC実装の1つであるQuinnを用いて、受け取ったリクエストをそのままクライアントへ…

Rustでバイナリを読み書きするのに必要なクレート3選

研究開発グループの大久保です。 当社の製品の中にはC/C++で書かれたものが存在し、その中には独自のバイナリフォーマットを取り扱うものが存在します。既存のコードとやり取りするようなRustのプロジェクトを起こすためには、その独自のバイナリフォーマッ…

RustでROS(RoboMaker)のノードを書いてみる

先端技術調査グループの大久保です。 弊社では現在、クラウド上でROSの開発が行えるAWS RoboMakerを利用しており、GazeboシミュレーションもRoboMakerを使って行っています。当ブログでも、RoboMakerを使ったシミュレーションを以前取り上げています。 tech.…

Rust+wasmでWebSocket上にバイナリデータ(CBOR)を流してみる

この記事はAptpod Advent Calendar 2019の10日目の記事です。 先端技術調査グループの大久保です。 前回の記事では、WebSocketのechoサーバにアクセスするwasmをRustとGoで作成しました。今回は、echoだけでは物足りないので、意味のあるバイナリデータをサ…

RustとGoでWebAssemblyのファイルサイズを比較する

この記事はAptpod Advent Calendar 2019の3日目の記事です。 先端技術調査グループの大久保です。 最近はWebAssemblyが注目されるようになり、弊社でもWebフロントエンド側での軽量化・高速化に応用できないか検討をしています。 そこで、今回はWebSocketのe…