タグ

関連タグで絞り込む (263)

タグの絞り込みを解除

Rustに関するigrepのブックマーク (507)

  • GitHub - wezterm/wezterm: A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - wezterm/wezterm: A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
    igrep
    igrep 2019/12/17
  • Rust でも gRPC が使いたい! - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Rust 1.39.0 でasync/.awaitが安定化され、今後はサーバーサイドの用途で Rust が採用されるケースが増えそうですね(期待を込めて)。 そのなかでも今回は、マイクロサービス指向で作成されたプロジェジェクトで採用されることが多い gRPC にフォーカスし、RustgRPC ライブラリである hyperium/tonic について紹介します。 RustgRPC ライブラリ Tonicのことを紹介する前に、他の gRPC ライブラリについても軽く触れておきます。 2019 年 12 月時点で、grpc-eco

    Rust でも gRPC が使いたい! - Qiita
  • Rust で DOS プログラミングしてみる? - Qiita

    はじめに この記事は Rustその2 Advent Calendar 2019 15日目 の記事です。小ネタになります。 以前、macOS 上の Rust でしっかりとスタティックリンクした時、どれだけバイナリがスリム化できるかにトライしてみましたが、固定文字列とシステムコール2発だけなのに、4,096バイトを消費してしまい、いまいち不満が残りました。だって、"Hello, World!\n\0" で15バイト、システムコール2発で2ワード、計50バイトぐらい、リロケーション情報が色々ついても、3桁バイトにまでいかずとも。もちろん、PCMac ではメインメモリが GB が当たり前ですから、そんなことを気にしてもしょうがないので、ターゲットを変えてみることにしました。けれども、組込系はやっている人が多そうだし... 良いターゲットはないかなぁと github 上をぷらぷらしていたら、S

    Rust で DOS プログラミングしてみる? - Qiita
    igrep
    igrep 2019/12/15
    すごい、Rustで書く意味がまるでないw
  • RustでGUI付きのVSTプラグイン作る(Conrod, iced) - Qiita

    はじめに VSTとはDAWなどの音楽ソフト上で動くプラグインの規格の一つです。 シンセサイザーやオーディオフィルターなどを作ることができて、DAW上から簡単に利用することができます。 画像はVSTHost上で動いている有名なシンセサイザープラグイン、Serum 余談ですがSerumは有料ソフトで、2万円位します。結構いい市場なのでは? この記事ではRustGUI付きのVSTプラグインを作っていきます。 各OSのAPIの仕様が関わってくるため、記事の対象プラットフォームはWindowsのみです 他のプラットフォームで成功した方はコメント下さい vst-rs vst-rsを使うとRustでVSTプラグインを作ることができます。 ここで説明すると長くなってしまうので、簡単な使い方をCreating a simple synthesizer VST plugin in Rustで各自参照してく

    RustでGUI付きのVSTプラグイン作る(Conrod, iced) - Qiita
  • RustのLLVMに関する問題 - 日記

    概要 dereferenceable_globally NonZeroUXXのLower 空無限ループ 終わりに 概要 この記事はRust Advent Calendar 2019の12日目の記事として書かれました。 qiita.com 遅刻してしまった...すいません(最悪)。 言わずもがなRustはLLVMをバックエンドに持つ言語です。 なのでバグがLLVMの最適化のせいだったりします。有名な例はnoaliasとか無限ループとかです。この辺りは定期的(2ヶ月一回くらい?)にTwitterとかで話題になりますね。またRustでの強い制約がLLVMにおける意味とのギャップで弱く表現せざるを得なかったりもします。そんな感じのこと少しだけ掘り下げて、RustのIssueとかLLVMのPhabricatorから幾つかまとめてみます。怪しいこと言ってたら教えて下さい。 dereferenceabl

    RustのLLVMに関する問題 - 日記
  • wasm-pack で JS の Promise を await できる非同期 Rust を書いて node.js で動かす - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    wasm-pack で JS の Promise を await できる非同期 Rust を書いて node.js で動かす - Qiita
  • cargo bench結果をプロットするcargobench-plotを使う - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    cargo bench結果をプロットするcargobench-plotを使う - Qiita
  • Rustの&strや&[T]はどこを参照しているのか - Qiita

    Rustその3 Advent Calendar 2019 この記事は、Rustその3 Advent Calendar 2019 5日目の記事です。 4日目 -> cargo publishできないRustプロジェクト 6日目 -> [Rust] IntegerとFloatの両方でmaxが必要なとき はじめに C/C++/Fortranなどのプログラミング言語の経験がある人がRustに触れたときに、次のような疑問は誰しも感じると思います。 Rustの文字列はなぜstrではなく&strなの? Rustのスライスが何を指しているのかよく分からない 実際、C++における部分文字列の参照はstd::basic_string_viewという普通のクラスで表現されていますし、配列に関してもvector_viewという外部のライブラリまで存在しています。 そもそも参照型とは何らかの変数への参照を表すものな

    Rustの&strや&[T]はどこを参照しているのか - Qiita
    igrep
    igrep 2019/12/13
    "「参照先の変数」ではなく)「参照変数それ自体」が、変数のアドレスと付加情報を持っている"
  • wasmを使ってRust製JVMをブラウザで動かしてみた - Qiita

    誰? 名前: r-chaser53 GitHub: https://github.com/rchaser53 Twitter: https://twitter.com/rChaser53 所属: LINE株式会社 言語開発とか好きな人(歴は1.5年くらい) rustfmtのお手伝いを今年はしてます 概要 Rustで作成したJVMをwasm-packを使ってブラウザで動かした 何も使わないで動かすよりはるかに楽だった ついでに見つけた便利なmoduleの紹介 JVM作成については別スライドをどうぞ 今回の成果物 Rust製JVM。wasmとしてブラウザで動かすこともできる https://github.com/rchaser53/rust-jvm wasm-packとは wasm-bindgenを使って生成したwasmファイルにRustJavaScriptのFFIのランタイムを追加するビル

    wasmを使ってRust製JVMをブラウザで動かしてみた - Qiita
  • Rustスマートポインタ比較表 - Qiita

    以下補足です。 効率 トレードオフを強調するために、相対的な効率を星の個数で表しています。しかし、効率をことさら気にする必要はありません。他の多くのプログラミング言語では、Rustでいうところの Arc<Mutex<T>> をデフォルトで使っているような状況です。要件にあったものを使うことが大事です。 ライフタイム 「短命」とついているものは基的に、ある関数のスコープに紐付いた形でしか使えません。特に慣れないうちは、これらの型を構造体に入れて使うのはやめておいたほうが無難でしょう。 例外として、グローバル変数 (static, lazy_static!) は &'static 参照として扱うことができます 共有 「ポインタ」と聞くと、参照先が共有されている様子を思い浮かべる人が多いと思いますが、所有権の概念のあるRustでは必ずしもそのイメージは当てはまりません。 &mut T と Bo

    Rustスマートポインタ比較表 - Qiita
    igrep
    igrep 2019/12/12
  • きんつば

    Pyladies Japan Advent Calender 2019の記事です。PythonでGererative Artに入門してみましょう。 comments

    きんつば
    igrep
    igrep 2019/12/12
  • 【AWS】RustでServerlessFrameworkを使ってみる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    【AWS】RustでServerlessFrameworkを使ってみる - Qiita
    igrep
    igrep 2019/12/11
  • Rustのマクロを可視化するツール railroad - Qiita

    この記事は Rustその3 Advent Calendarの10日目の記事です。空いていたのでちょっとしたツールをご紹介します。 Rustのマクロについて Rustのマクロは、Rustの他の要素と比べて変わった文法なので最初は戸惑うかもしれません。しかし、やっていることは「どういう構文にマッチするのかを定義する」「その構文がコンパイル時にどう変換されるか定義する」の2つです。このうち、前者の「どういう構文にマッチするのか」がイメージしやすくなれば、マクロを書きやすくなるでしょう。というわけで、この部分を可視化します。 railroad railroadは、その名の通り鉄道の線路のようにマクロの構文を可視化してくれます。ありがたいことに、Webブラウザで動くデモがありますので、以下から使わせてもらいます。 試しに、頻繁に使うマクロであるvec!を可視化してみます。vec!の定義は以下の通りで

    Rustのマクロを可視化するツール railroad - Qiita
    igrep
    igrep 2019/12/10
  • Announcing polyfuse - A FUSE library for Rust - - missing documentation for life

    Rust Advent Calendar 2019 10日目の記事です。 記事では、拙作の FUSE ライブラリである polyfuse を紹介します。 FUSE の概略 FUSE (Filesystem in Userspace) とは、ユーザ空間でファイルシステムを実装するための仕組みです。 来ならカーネルモジュールとして実装する必要があるファイルシステムを(ユーザ空間で動作する)実行ファイルとして動作させることで、ファイルシステムを簡単に作成・配布することが出来るようになります。 同様の仕組みとして、NetBSD の puffs や、 WSL が Windows 側に rootfs を公開するためのプロトコルとして採用したことでも知られる 9P などがあります。 FUSE を用いたファイルシステムの実装として、SSH 経由でネットワーク越しにディレクトリをマウントする SSHFS

    Announcing polyfuse - A FUSE library for Rust - - missing documentation for life
    igrep
    igrep 2019/12/10
    “polyfuse は、fuse-rs と同様に libfuse を介さずに Rust の機能をフルで活用した FUSE によるファイルシステムを実装するためのライブラリ”
  • Rustの `Arc` を読む(1): Arc/Rcの基本 - Qiita

    概要: Rustの Arc 型の実装は宝の宝庫です。そこで、これを隅から隅まで解説してみます。 第1回「Arc/Rcの基」では、実際に Arc のソースを読む前に Arc/Rc の使い方を解説します。 第1回 Arc/Rcの基 第2回 Rcを読む基編 第3回 Rcを読む発展編 第4回 アトミック変数とメモリ順序 第5回 Arcを読む はじめに Arc<T> はRustの基的な型のひとつですが、 Box<T> のようにコンパイラに特別扱いされているわけでもなく、実装も比較的コンパクトです(コメントやテスト、安定性に関する指示などを除いて500LOC程度) その一方で Arc は並行性制御や Deref, ドロップチェッカー, Unpin, Layoutの扱いなどRustをよりよく理解するための題材を多く含んでいます。そこで記事では Arc<T> の実装を読んでいきます。 とはいえ、

    Rustの `Arc` を読む(1): Arc/Rcの基本 - Qiita
    igrep
    igrep 2019/12/09
  • Rust+nomでバイナリ(bmpファイル)を読もう - Qiita

    Rustでバイナリをパースする方法はいくつかありますが、nomでやってみたら以外と簡単だったので記事にします。 nomとは GitHub: https://github.com/Geal/nom Rustのパーサコンビネータライブラリのデファクトスタンダード的な存在です。昔はマクロ中心の記述が中心で、マクロに慣れないと辛いところもありましたが、バージョン5からimpl Traitを活用した関数中心の記述に変更されました。マクロを使わないと書けないところも残っていたりしますが、かなり簡単にパーサコンビネータを使うことができます。文字列だけでなくバイナリのパーサを書くのにも使えます。 目標 バイナリを読む練習として、今回は仕様がかなり簡単な部類のバイナリファイルであるbmp(Windows Bitmap)ファイルを読むことを目標とします。フォーマットはWikipediaを読めばわかります。bm

    Rust+nomでバイナリ(bmpファイル)を読もう - Qiita
    igrep
    igrep 2019/12/09
    combineよりもいいのか。
  • 手続き型脳で型推論を実装してみた | κeenのHappy Hacκing Blog

    このエントリは型 Advent Calendar 2019 - Qiita 2日目に遡って投稿しているエントリです。 担当に遅刻した訳ではなくて空いてたので前から詰めて投稿しただけです。 κeenです。世の中に型推論アルゴリズムは色々知られていると思いますが、それを一切無視して型推論を実装してみたので報告します。 型推論の基的理解 式に型変数を割り当てて、既に分かっている型から制約条件をつけてその制約の連立方程式を解けばいいです。 例えば以下のようなSMLの式を考えましょう。

    手続き型脳で型推論を実装してみた | κeenのHappy Hacκing Blog
  • RustでCPS変換が簡単になったよという話 | κeenのHappy Hacκing Blog

    κeenです。このエントリはRust Advent Calendar 2019 - Qiita 8日目の記事です。 昔書いたRustのコードをもけもけ漁ってたら、しばらく前にRustでCPS変換しようとしてた下書きをたまたま発見しました。 当時はコンパイラの制約で簡単には書けなかったのですが今見ると簡単に書けるようになってたのでRustも進歩してるね、という確認をしたいと思います。 CPS変換とは CPS変換とは、プログラムを継続渡し形式(Continuation-Passing Style)に変換することです。 じゃあCPSとはというと、雑に言えば「ネストした関数の呼び出し禁止」の形式です。 …ちょっと雑すぎますね。 プログラムのコントロールフロー(if 式や 関数呼出)を陽に受け取った継続で記述する形式です。 この形式はよくコンパイラの内部表現なんかに使われます。 変数束縛の右側に i

    RustでCPS変換が簡単になったよという話 | κeenのHappy Hacκing Blog
  • RustのLinux muslターゲット (その1:Linux向けのポータブルなバイナリを作る)

    これは Rustその3 Advent Calendar 2019 — Qiita の8日目の記事です。 Rustのx86_64-unknown-linux-muslターゲットを使って、libc(標準Cライブラリ)やSQLiteなどの外部ライブラリに静的リンクしたバイナリを作成する方法を紹介します。 こうして作ったバイナリは、Alpine Linuxを含むさまざまなx86_64 Linux環境で実行できます1。 またUbuntuやCentOSなどの一般的なLinuxディストリビューションを使っている場合でも、実行環境にSQLiteやOpenSSLなどを別途インストールしなくてすみますので、バイナリの配布が楽になります。 さらにこれらを極小のDockerイメージに入れることで、Webアプリケーションなどではデプロイが容易になるかもしれません。 以下の内容を2回に分けて説明します。 今回:Alp

  • Rustのturbofishを理解する | κeenのHappy Hacκing Blog

    このエントリはRustその3 Advent Calendar 20193日目に飛び入り参加しているエントリです。 Rustの型パラメータ指定の構文、通称ターボフィッシュ(turbofish)について。 Rustでジェネリクス関数は以下のように関数名に続いて <パラメータ名> で指定しますよね?

    Rustのturbofishを理解する | κeenのHappy Hacκing Blog