タグ

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

タグの絞り込みを解除

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

  • GitHub - google/rerast: A tool for transforming Rust code using rules

    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 - google/rerast: A tool for transforming Rust code using rules
    igrep
    igrep 2017/12/18
  • rust-sdl2を用いてwasmを生成する際の音楽ファイル関連のtips - Qiita

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

    rust-sdl2を用いてwasmを生成する際の音楽ファイル関連のtips - Qiita
    igrep
    igrep 2017/12/17
  • diesel小ネタ集 | κeenのHappy Hacκing Blog

    κeenです。これはRust Advent Calendar 2017の記事です。 RustORM、クエリビルダ、マイグレーションツールのdieselについて。 dieselについては公式チュートリアルを読めばだいたい使い始められるのですが、それだけでは足りないのでいくつか持ちネタを書きます。 diesel-1.0.0-beta1での情報です。 table! マクロ チュートリアルにはinfer_schema!を使ったDSLの自動生成が書かれてますが、table!マクロを使って自分で書くこともできます。 table! { posts { id -> Integer, Title -> Text, body -> Text, published -> Bool } } このときの型はdieselで定義されているSQL型を書きます。 このSQL型は特定のDBMにあるものも用意されていて、例え

    diesel小ネタ集 | κeenのHappy Hacκing Blog
    igrep
    igrep 2017/12/17
  • Rust+WebAssemblyのフレームワークを作ってみた - Qiita

    はじめに クライアントサイドでのWebアプリケーション開発の発展は留まるところを知りません。しかし、JavaScriptは 型安全ではない ビルドのための環境構築が大変 といった課題をずっと抱えています。前者はTypeScriptでかなり改善されていますが、ベースがJavaScriptなので当初から型をもつ言語には及びません。後者もWebpackでかなり改善されましたが、依然としてビルドの設定は一番苦労するところです。WebAssemblyが主要ブラウザでサポートされた今、これらのソリューションとしてRust+WebAssemblyのフレームワークを提案します。 フレームワークの要件 フレームワークは既存の課題を解決するだけでなく、使いやすいことが重要だと思います。今回フレームワークを設計するにあたり、4つの要件を定義しました。 型安全 ビルドツール不要 標準HTMLに近いテンプレート記法

    Rust+WebAssemblyのフレームワークを作ってみた - Qiita
  • Rust の migration ツールを探して(diesel_cli 編) - Qiita

    これはRust Advent Calendar 2017 16日目の記事です。 Rust でサーバーを動かしてみたく、探してみたところrustful を見つけたので、使ってみました。 API サーバーでデータベースを扱う上で良さそうなマイグレーションツールはないかと探してみたら、diesel を利用した diesel_cli を見つけたので紹介します。 diesel_cli は diesel を利用しており、同じ人たちが開発しているようです。現在(diesel 1.0.0-beta1)は PostgreSQLMySQLSQLite に対応しています。 以下の環境で動作確認をしています rustc 1.22.1 (05e2e1c41 2017-11-22) Ubuntu 16.04.3 LTS(Windows Subsystem for Linux) まずは diesel_cli を

    Rust の migration ツールを探して(diesel_cli 編) - Qiita
    igrep
    igrep 2017/12/16
  • 古い記事に騙されないで!hyperじゃなくreqwestを使ってください - Qiita

    ちょっと煽ってみました 誰も書いていなかったのでreqwestについて書きます。 TL;DR HTTP系crateのデファクトスタンダードであったhyperは0.11.0からtokioとfuturesを採用した複雑なAPIに変わりました。 simpleでstableなHTTP clientが使いたければhyperの作者でもあるseanmonstar氏のreqwestを使うのがいいです。 もちろん、reqwestにデフォルトでついてくる機能がいらない場合や、高次元なcrateを自作したい場合はhyperを使うのが正しいです。 現在のhyper clientの公式exampleがこことここに載っています。 かなり単純な形でも以下のようになりますね。 extern crate futures; extern crate hyper; extern crate tokio_core; use st

    古い記事に騙されないで!hyperじゃなくreqwestを使ってください - Qiita
    igrep
    igrep 2017/12/15
  • Rustでも(そこそこ)安全なグローバルインスタンスを使いたい - Qiita

    同じ記事を別のカレンダーに登録できないことに気づいて必死にネタを探しました。 うちのソフトウェアで必要に駆られて製作したappinstanceクレートを少し前に切り出して正式にpublishしたのでその紹介です。 つかいかた appinstanceは主にアプリケーションの実行と同じライフタイムを持つ唯一のオブジェクト(つまりシングルトン)を定義するためのライブラリです。 appinstanceの実態はひとつのマクロなので、利用は次の一行を追加するだけでおしまいです。 staticとDrop Rustにはすでにstaticというキーワードが存在しており、これを使うとアプリケーションと同等のライフタイムを持つデータを定義することが可能になっています。ただしこの定義はコンパイル時の定数を必要としており、HashMapやその他複雑な初期化を必要とするオブジェクトをstatic変数に持つことは難しい

    Rustでも(そこそこ)安全なグローバルインスタンスを使いたい - Qiita
    igrep
    igrep 2017/12/14
  • RustでWebフロントエンド開発はできるのか? - 0x90

    Rust Advent Calendarの13日めです。 イントロダクション Rustを語るときしばしば「RustはWebフロントエンド開発もできる」ということが言われます。もちろん、RustはLLVMフロントエンドであり(LLVMから見てClangっぽく見えるように頑張っている)、emscriptenを使うことで用意にasm.js/wasmにできるわけですが、そこにとどまらずRust自体がオフィシャルにemscriptenバックエンドをサポートしています。更にごく最近、LLVM自体のwasm backendもサポートされました。 さて、では実際RustでWebフロントエンド開発はできるのでしょうか。もちろん、コストの掛かる何らかの特別な処理を行うためにJavascriptからRustの関数を呼び出したり、あるいはこちらの方がされているように、emscriptenのOpenGL imple

    RustでWebフロントエンド開発はできるのか? - 0x90
    igrep
    igrep 2017/12/13
    stdwebすごいな。
  • Rust for Robotics - Qiita

    はじめに Rustコミュニティーのみなさんこんにちは。 私はRobotの専門家であるRoboticistの @OTL です。この記事ではみなさんにRust x Roboticsの世界の一端を感じていただければと思います。 Rust is for Robotics 言語としてのRustとRoboticsの相性 Rustを知ったのはおおよそ半年前という新参なのですが、RustはRoboticsに向いた言語であると思っています。 詳しくは↓に書きました。 要約すると Roboticsでは実行時間=性能であるため、性能重視 される。そのためC++が基的に使わている。(性能いらないところはPythonなどが使われている) ロボットはテストを書くのがしんどい(実際にロボットを動かすか、重いシミュレータを起動するか)ので、なるべくテスト書きたくない。Rustはコンパイル大変だからテストはゆるくても良さ

    Rust for Robotics - Qiita
    igrep
    igrep 2017/12/12
  • ポエム:Rustはロボットプログラミングのデファクトスタンダード言語となりえるか

    RustはMozillaが開発するプログラミング言語で以下のような特徴のあるらしい。 Rust は安全性、速度、並列性にフォーカスした現代的なシステムプログラミング 用のプログラミング言語です。 ガベージコレクション無しでメモリ安全であることが、これを可能にしています。 from http://rust-lang-ja.org/rust-by-example/ 速度、並列性、GC無し、などは制御の人だったら魅力的に感じるのではないだろうか。 ロボットのプログラミングというと、C++Pythonあたりを使っている人が多いだろう。私はPythonが大好きで趣味ではPythonばかり書いていた。そして仕事ではC++がほとんどだ。 だが、ここ2ヶ月くらいRustにハマっている。ひょっとしたらRustはロボットと非常に相性がいいのではないかと思っている。 Rustのいいところ RustC++に似

  • RustでFUSE - Qiita

    これはRust Advent Calendar 2017 11日目の記事です。 今回はRustを用いてファイルシステムを作ることができるrust-fuseを紹介します。 FUSE(Filesystem in Userspace)とは? FUSEは、通常カーネル空間で提供するファイルシステムの機能をユーザ空間上で定義し動作させることができるものです。 ユーザ空間とカーネル空間の橋渡しをするインターフェースとカーネル内での処理を提供しています。実装者はカーネルのコードをいじることなくファイルシステムを作成できます。 リファレンス実装はlibfuseとして提供されています。 FUSEを使ったファイルシステムとしては、SSHFSやGlusterFS、gitfsなどがあります。 rust-fuse rust-fuseはRustでFUSEを実装できることを目的としたcrateで、単純なlibfuseの

    RustでFUSE - Qiita
  • GitHub - little-dude/rmp-rpc: a msgpack-rpc rust library based on tokio

  • Tokioで1チャンネル双方向通信可能なMessagePack-RPCのライブラリを作った - Qiita

    少し前に作った双方向の MessagePack-RPC 実装に関する知見をまとめておきます. 成果物は以下の通り. https://github.com/ubnt-intrepid/msgpack-rpc-rs はじめに MessagePack-RPC について MessagePack-RPC は MessagePack を使用した RPC であり,JSON や XML ベースのものと比較し非常にコンパクトなフォーマットで通信を行うことが出来る.各メッセージは MessagePack の配列として表現され,それぞれ次のような要素を持つ. Request = [0, msgid, method, params] msgid: integer method: string params: array Response = [1, msgid, error, result] msgid : in

    Tokioで1チャンネル双方向通信可能なMessagePack-RPCのライブラリを作った - Qiita
  • Rustでパックマン風のゲームを作ってみた - Qiita

    tl;dr Rustの練習のためゲームを作った Boxを用いればtraitでもstructのフィールドの型にできる(トレイトオブジェクト) RustはDSTという仕組みを用いて継承の様な仕組みを取り入れている はじめに 8月末からRustを始めました。勉強のために何か作ろうと思いRust-SDL2を使ったパックマン風(※1)のゲームrust_pack_man」を作成しました。以下みたいなやつです。ゲームのフィールド作成に苦戦したので、そこの実装について書きます。 フィールドの作成 フィールドの情報を定義したtextファイルを読み込むことでrust_pack_manはゲームのフィールドを作成します。上のgifの様なステージであれば以下の様なtextファイルになります。1セルごとに情報が設定できる様になっていて、このセルはアイテムだ。このセルは敵キャラだという形になっているシンプルなやつです

    Rustでパックマン風のゲームを作ってみた - Qiita
    igrep
    igrep 2017/12/10
  • Rustに100日触れてわかったこと - Qiita

    Rustは「学習コストが高い?」「関数型プログラミング言語?」 と思っていた私が、実際にRustに触れてみて得られた知見をまとめました。 プログラミング言語の多くの課題を解決してくれる言語 Rustは「安全性」「速度」「並列性」を考慮して設計されています。 言語セマンティクスを強く定義し(Ownershipやlifetime 後述)、ネットワークコネクションなどのリソース管理全般に関するバグを、コンパイル時に発見してくれることで実現しているといえます。 最初はコンパイルが厳しくて「書いたコードはあってるはず...」 と、陥るほどに暗黙的な印象を感じます。コンパイルの厳格さは、人間が間違えないようにするために、静的に解析できる情報をなるべく多く与え、機械的に検証するためだと考えます。 ひと言でまとめると「コンパイルへの押し付け」です。 安全性に重きをおきながら、zero cost abstr

    Rustに100日触れてわかったこと - Qiita
    igrep
    igrep 2017/12/08
  • IronでWebサービスを作るために必要だったもの - Qiita

    IronでWebサービスを作りました IronというWeb Frameworkがありまして、以前から気になっていたのですがちゃんと書けていなかったので趣味プロジェクトとして短縮URLサービスを作りました。 Ironを使って開発していくにあたって必要となったミドルウェアや書き方などを紹介していきます。 公式リポジトリのこのあたりのサンプルコードを使って自分で動かしながら読んでいく方法がおすすめです。 まずはルーティング このままでは動かないコードですが、雰囲気だけでも伝えたいので一部省略したコードを載せます。 実際にWebサービスとして必要となるルーティングを行った際、下記のような構成になりました。 let mut index_chain = Chain::new(application::service::index_service::index_service); let mut rou

    IronでWebサービスを作るために必要だったもの - Qiita
    igrep
    igrep 2017/12/07
  • RustでミニTensorFlowを作った - Qiita

    Rust Advent Calendar 2017 6日目の記事です。 rust-autograd というライブラリを作りました。https://github.com/raskr/rust-autograd もともとニューラルネットのライブラリのつもりだったんですが、GPUの知識がなさすぎて無理だと気づき、一般的な名前にしました。一応ドキュメント(兼テスト)もあります。例えば行列積の計算はこんな感じです: extern crate autograd as ag; let a: ag::Tensor = ag::zeros(&[4, 2]); let b: ag::Tensor = ag::zeros(&[2, 3]); let c: ag::Tensor = ag::matmul(&a, &b); println!("{}", c.eval(&[]).unwrap()); // [[0,

    RustでミニTensorFlowを作った - Qiita
    igrep
    igrep 2017/12/06
  • 書籍「テスト駆動開発」をRustで書く #1 (chapter1...3) - Qiita

    はじめに これはRustその2 Advent Calendar 2017の9日目の記事です。 @hgsgtkです。 著書「テスト駆動開発」をrustで書いていきます。 「テスト駆動開発」は、Kent Beck著、和田 卓人さん翻訳の書籍です。この著書では、第1章から第17章にかけて、「多国通貨」というテーマでテスト駆動開発のプロセスを写経しながら体感することができる構成になっています。 著作はJavaで進められていますが、今回はそれをrustで進めていきます。 最終的に目指すコードは以下のテストが通るコードです。 通貨の異なる2つの金額を足し、通貨間の為替レートに基づいて換算された金額を得る。 金額(通貨単位あたりの額)に数値(通貨単位数)を掛け、金額を得る 目次 概要 第1章 仮実装 第2章 明白な実装 第3章 三角測量 最後に 概要 ページでは、第1章から第4章までを進めていきます。

    書籍「テスト駆動開発」をRustで書く #1 (chapter1...3) - Qiita
    igrep
    igrep 2017/12/05
  • Rustで簡易HTTPサーバーを作成してみる - Qiita

    fn main() { let listener = TcpListener::bind("127.0.0.1:8080").unwrap(); for stream in listener.incoming() { match stream { Ok(stream) => { thread::spawn(move || { handle_client(stream) }); } Err(_) => { panic!("connection failed") } }; } } TCPの接続周りはstd::netモジュールを使用しました。TcpListener.bindでipアドレスとポート番号を割り当てたTcpListenerを作成します。 incoming()はloop~acceptと同様の動きをしているらしいのでそれによって、接続をループで待ち受けます。 接続が来た場合、スレッドを作成

    Rustで簡易HTTPサーバーを作成してみる - Qiita
    igrep
    igrep 2017/12/04
  • Accel: GPGPU framework for Rust - Qiita

    これはRust Advent Calendar 2017 3日目の記事です 今回は現在開発中であるRustによるGPGPUプログラミングのためのフレームワークAccelを紹介します。 GPUを使った汎用計算の技術(GPGPU)は伝統的なHigh Performance Computing (HPC)業界だけでなく、機械学習等への応用も広がり現代では欠かせない技術です。GPUの利用には大きく分けて3つの段階があります: 高速化されたライブラリを使用する(cuBLAS, cuDNN等) CPU用のコードに僅かな変更を加えてGPUで動くようにする(OpenACC) GPU用のコードを設計・開発する(CUDA) 下に行くほど開発難度が増大します。 最近はOpenACCに力を入ているようで、ごく僅かな変更で大幅な高速化が期待できると宣伝しているのをよく見ます 1。 Accel: GPGPU fram

    Accel: GPGPU framework for Rust - Qiita