タグ

rustに関するsurumedakaのブックマーク (11)

  • RustでOption値やResult値を上手に扱う - Qiita

    この記事の概要 Option<T> 型や Result<T, E> 型の戻り値を、match 式で判別している以下のようなコードを、 fn double_arg(mut argv: env::Args) -> Result<i32, String> { match argv.nth(1) { None => Err("数字を1つ指定してください。".to_owned()), Some(arg1) => { match arg1.parse::<i32>() { Ok(n) => Ok(2 * n), Err(err) => Err(err.to_string()), } } } }

    RustでOption値やResult値を上手に扱う - Qiita
  • 幽霊型の紹介(サイバーエージェントA.J.A.社内勉強会 2016.6.23)

    The document summarizes an experiment comparing the performance of GraphQL and REST APIs when querying data from MongoDB and ElasticSearch databases. The key findings are: 1) Optimizing queries between the client and application server had less impact than expected, with GraphQL responses being smaller but not significantly faster. 2) Optimizing queries between the application server and databases

  • RustでHTTPパーサを書いた : As Sloth As Possible

    Rustで遊んでみよう第二弾、当は並列処理を試してみたにする予定だったんだけど何故かHTTPパーサが出来てた。 経緯はこう。 ナマケモノ@faultierWhitespace飽きたし非同期のクローラでも書いて遊ぶか→HTTPクライアントライブラリ、死んでるのと始まってすらいないのとcurlバインディングのしかない→折角なので自分で作ってみるか→HTTPパーサが(ry→HTTPパーサ書くの楽しい←イマココ 2014/07/20 22:37:54 「並列実行できるクローラ作ってください」「作るってどのレベルで?HTTPパーサから?」みたいなのがRust村みたいです。まぁ言うてまだアプリケーション層だ。TCP/IPからなんとかしましょうとか言われなくてよかった。一応C国からの輸入は許されてるけど、TLSとかならともかくHTTPくらいなら自力でなんとかできるでしょ、普段そんなの車輪の再発明だしや

    RustでHTTPパーサを書いた : As Sloth As Possible
  • Rustのコード整形ツールrustfmtのオプションについて - Qiita

    2020/7/9追記: 記事は内容が古くなっている、かつ独自調査なため、公式のドキュメントを見る事を推奨します。 ※日語で読める利用方法の把握記事に使えなくはないですが、オプションがわりと変わっています。 追記ここまで この記事について この記事はRustのソースコードを整形するrustfmtの各オプションについての解説記事です、rustfmtのソースコードと実際に動作させながらの調査の為、解説に見落としがあるかもしれない事をご了承下さい。 調査時のRustrustfmtのバージョンは以下の通りです。 Rust(rustc 1.8.0) rustfmt 0.4.1 config options早見表 configファイルに書くことが出来るオプションについてです、configファイルは--config-pathで指定も出来ますが、省略時は対象ソースと同パスにあるrustfmt.toml

    Rustのコード整形ツールrustfmtのオプションについて - Qiita
  • RustでWebプログラミング No.3 ~ HandlebarでHTMLテンプレート~ - Let's write β

    振り返り 前回 poketo7878-dev.hatenablog.com までにRouterで複数URLに対応したHTTPサーバーを建てられるようになりました。 しかし、出力されるのは常に文字列でHTMLのページではありませんでした。 今回はHandlebarというテンプレートエンジンを利用してHTMLページをユーザーに表示できるようにしました。 handlebar-ironをCargo.tomlに追加 前回までと同様にCargo.tomlに以下のdependencyを追加します。 handlebars = "0.20.5" また、今回はHTMLページでformを表示し、POSTしてみたいと思うので、 formやURLなどのパラメータをパース及び取得するためのcrateもdependencyに追加しておきます。 params = "0.4.1" 全体 まずはコードの全体です extern

    RustでWebプログラミング No.3 ~ HandlebarでHTMLテンプレート~ - Let's write β
  • Rustの関数でSIMDをつかう → もっとはやい - Qiita

    この記事は、「ElixirからRustの関数をつかう → はやい」の続編だ。今回は、前回の記事で最速だった Rust によるマルチスレッドプログラムを、少ない労力で SIMD 化して、さらなる高速化を図る。 実はコード自体は少し前に書いてあったのだが、なかなか文を書き進める時間がとれず、今回は、駆け足で説明することになってしまった。説明不足な点があると思うので、疑問とか、試してみたけどうまくいかないとかあれば、コメント欄で質問してほしい。 前回やったこと 前回 の記事では、Elixir から Rust の関数を呼ぶことで、円周率の近似値を求める計算を高速化した。計算方法は「数値積分法の長方形近似」という、とても素朴な方法だった。 これを選んだのは次のような理由だった。 実装が非常に簡単 計算が適度に重い マルチコア CPU を活かしたプログラムを書きやすい 以下の段取りで、計算にかかった

    Rustの関数でSIMDをつかう → もっとはやい - Qiita
  • RailsのCSVのところをRustで処理したら早かった - Qiita

    背景 RailsCSVを返す時、10万データくらいのものを普通に処理するとメモリをい潰したり、処理が遅かったりする。 そこで解決策を探していたら、RustRailsの代わりにCSVを作るという素晴らしい記事に出会った。 この記事はPostgresやNginxを使ってたが、私はMySQLを使っており、Railsのアプリケーション内で完結したかったので、参考にしながら試験的に作って見た。 お断り Railsをすでに理解していることを前提に進めます。 初心者の方へ環境構築周りを最後の方におまけとして書いておきますので参考にしてください。 筆者はRust初心者ですのでアドバイスを頂けるととても助かります。 環境 Ruby 2.3.3 Rust 1.14.0 Rails 5.0.1 Gemfileは基デフォルト source 'https://rubygems.org' git_source

    RailsのCSVのところをRustで処理したら早かった - Qiita
  • Rustは何が新しいのか(基本的な言語機能の紹介) - いもす研

    Rust は、Firefox を開発する Mozilla が開発し、次世代ブラウザの開発に使っているプログラミング言語です。借用検査という概念を導入することによりメモリ安全およびデータ競合安全をコンパイラが保証する言語であり、2015年中頃の安定版のリリースあたりから次第に注目を集めるようになりました。 メモリ安全とは、メモリの範囲外アクセスや二重解放、ヌル参照、未初期化領域へのアクセスがない状態を表します。ただし、Rust の言うメモリ安全とは、メモリリークをしないことを保証するものではありません。 データ競合安全とは、あるひとつのオブジェクトに対しての読み込みおよび書き込みのが同時に起き結果が不定になる状態にならないことを表します。競合状態とは異なります。 無名関数という概念を様々な言語が次々と導入したように、プログラミング言語は相互に影響を及ぼし徐々に変化しています。Rust は「寿

  • http://x1.inkenkun.com/archives/5558

    http://x1.inkenkun.com/archives/5558
  • ElixirからRustの関数をつかう → はやい - Qiita

    Elixir から Rust の関数を呼ぶことで、円周率 $\pi$ の近似値を求める計算を高速化する。Erlang VM の NIF(Native Implemented Functions)という仕組みで実現するので、同じ方法で Erlang から Rust の関数を呼ぶこともできる。 Qiita では同じようなタイトルの記事が 各言語でシリーズ化(?) されているので、それに便乗させてもらった。ただそれらでは、重い処理として再帰型のフィボナッチ数列関数が使われているのだが、それだとマルチコアプロセッサで並行計算(parallel 計算)させるのが難しいので、今回は簡単に parallel 化できる、円周率の近似計算を行うことにした。 進めかた 計算にかかった時間を計りながら、以下の段取りで進めていく。 Elixir:シングルプロセスで計算 Elixir:マルチプロセスで計算 Elix

    ElixirからRustの関数をつかう → はやい - Qiita
  • exa · a modern replacement for ls

    A modern replacement for ls.You list files hundreds of times a day. Why spend your time squinting at black and white text? exa is an improved file lister with more features and better defaults. It uses colours to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git. And it’s small, fast, and just one single binary. Most recent version: v0.10.1, released on Apr

  • 1