Built with Rust, which focuses on safety, speed and concurrency. Memory-safe and significantly reduced CPU and RAM overhead. Blazing fast static files-serving and asynchronous powered by the latest Hyper, Tokio and a set of awesome crates. Single 4MB (uncompressed) and fully static binary with no dependencies (Musl libc). Suitable for running on any Linux distro or Docker container. Optional GZip,
「Rustの所有権が難しい」という話しがときどきありますが、所有権システムの理解を助ける記事にしてみたいと思います。 所有権とはリソースを開放する権利のこと 所有権とは関数がリソース(資源)を開放する権利のことです。所有するというより消費されてしまうイメージに近いです。 以下のように変数の束縛での解説が多いですが、たぶんつまずくのは関数のほうかなと。 let a = String::from("abc"); let b = a; println!("{}", a); // bに所有権が移動するのでコンパイルエラー let c: u32 = 1; let d: u32 = c; println!("c = {}, d = {}", c, d); // 基本データ型はCopyトレイトを実装しているのでコンパイル可能 というわけで、ここから関数の例で解説します…。 以下のfoo関数はb: Bar
ドメイン固有型である、ドメインオブジェクトをRustで実装する際のコツみたいなものを簡単にまとめました。まぁ「ドメイン固有型」というと大袈裟なので、「独自に型を作る」を想定してもらえばよいと思います。OOPに慣れている人がハマりやすい点も簡単に言及しています。ご参考までに。 アドレス帳型を作る アドレス帳型を例にします。 先にコードを以下に示します。コード全体はGitHubリポジトリを参照してください。 #[derive(Debug, Clone)] pub struct AddressBook { name: String, entries: Vec<AddressEntry>, } impl Default for AddressBook { fn default() -> Self { Self { name: String::default(), entries: Vec::def
Rust + Docker + GitHub Actions = めちゃ遅い 以前、GitHub Actions 上の Rust ビルドを高速化する記事を書いたけど、 今回は Kubernetes 環境にスムーズに移行できるよう Docker イメージ化するという要件も加わったことで、改めて試行錯誤する必要が出てきた。 それぞれに対するビルド速度の最適化は存在しているものの、3つ (Rust, Docker, GitHub Actions) すべてを満たすとなるとコピペで終わるほど情報がまとまってないし、見つけた Tips もちょっと古かったり、これというものは見つけられなかった。 公式ドキュメントを見ると正当進化していて新しいオプションが生えていたりしたので、賞味期限は短そうだけど、自分の試行錯誤の結果を残しておこうと思う。 成果としては 12 分 22 秒かかっていた Rust アプリ
最速で知る! プログラミング言語Rustの基本機能とメモリ管理【第二言語としてのRust】 Rustは、新しいシステムプログラミング言語です。本稿では、基本的な構文に加えて、所有権、参照と借用、ライフタイムといった特徴的な機能によるメモリ管理を解説します。 κeen(@blackenedgold)です。Rustの入門を担当することになりました。基本的な文法と使い方を説明しつつ、Rustの特徴的な機能と、なぜその機能が必要かというモチベーションを紹介していけたらと思います。 Rustは非常に高機能であり、この記事ですべてを紹介できません。興味を持った方は、ぜひ公式ドキュメントを読んでみてください。私が管理している和訳もあります。 The Rust Programming Language プログラミング言語Rust Rustはシステムプログラミング言語 Rustのインストール Hello W
# Rust なのか Go なのか ひとりごと。色々、漁ってると、こんな雰囲気。 並列処理で もっと高速に書きたい → Go Go で大事なのは → goroutine ガシガシ書き込んで もっと高速に書きたい → Rust Rust で大事なのは → 所有権 # 1. 概観 Go と Rsut は全く用途が違うそうです。なので、 自分の用途に合わせて選ぶことになるかなと思いますが... Indeed! — Go (@golang) July 25, 2019 Go は文法がとてもシンプルです。 誰が書いても同じようなコードになるようなことを意識しているのかなと思われます。 それが元でよく Go を貶す記事が見受けられます。 Rust はコードが複雑になっても、ガシガシ書き込むような感じらしいです。その分だけ Go よりも高速に動作します。 Rustと競合? - Goへの誤解について (o
In this article, we want to provide a list of some free and paid resources that we loved the most in our journey to learning Rust. Rust is certainly not the easiest of programming languages, especially at first glance, but once you can overcome the initial "wall of fear" and start to grasp some of the key concepts, Rust becomes a language that you are going to love and you will probably be looking
Wantedlyでインターンをしている遠藤です。インターンのタスクとして「RustでProtocol BuffersからGraphQL BFFを自動生成する」という技術検証を行ったので、その知見を共有したいと思います。 今回の技術検証で作成したツールのソースコードはここにあります: EXPERIMENTAL] Generate GraphQL schema and gateway from Proto definitions. Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in
こんにちは、R&Dチームの齋藤(@aznhe21)です。書きたい記事がいっぱいあるのに時間が取れません。悲しい。 さて、本日、日本時間3/26(金)、Rust 1.51がリリースされました。 この記事ではRust 1.51での変更点を詳しく紹介します。 3/26は普通選挙法成立の日 ピックアップ ジェネリクスの引数として定数を使えるようになった 配列要素の所有権を奪いつつイテレート出来るようになった featureの新しい解決機構が使えるようになった 安定化されたAPIのドキュメント Arc::decrement_strong_count 安全性 サンプル Arc::increment_strong_count 安全性 サンプル Once::call_once_force サンプル Peekable::next_if_eq サンプル Peekable::next_if サンプル Seek:
はじめに Rustを使ってみて、実行ファイル形式はやはり手軽だなーと感じるこの頃です。ただ、毎回ターミナル上での操作となるので「たまにはフォーム形式でやってみたい」と思いました。 RustにもGUIのライブラリが幾つかあり、そのうちの一つIcedを弄ってみることにしました。 Icedを選んだワケ 知名度があると思われるRustのGUIライブラリとして、conrod、druid、OrbTk、azul等があります。それぞれに特徴がありつつも、日本語が十二分に使えるのはconrodのみのようです。 ですが、上記記事にてconrod版を軽快に動かしたい場合に推奨されているvulkanは、MacOSの場合だと動作環境の都合でmetalにする必要があります。 他に何かないかなと検索してみたところ、実践Rustプログラミング入門の中身検索にてIcedを見つけました。クロスプラットフォーム対応により1つの
tldr: Rust/coreutils ( https://github.com/uutils/coreutils/ ) is now available in Debian, good enough to boot a Debian with GNOME, install the top 1000 packages, build Firefox, the Linux Kernel and LLVM/Clang. Even if I wrote more than 100 patches to achieve that, it will probably be a bumpy ride for many other use cases. It is also a terrific project to learn Rust. See the list of good first bugs
The Rust Programming Language 日本語版 著:Steve Klabnik、Carol Nichols、貢献:Rustコミュニティ このテキストのこの版ではRust 1.58(2022年1月13日リリース)かそれ以降が使われていることを前提にしています。 Rustをインストールしたりアップデートしたりするには第1章の「インストール」節を読んでください。 HTML版はhttps://doc.rust-lang.org/stable/book/で公開されています。 オフラインのときは、rustupでインストールしたRustを使ってrustup docs --bookで開けます。 訳注:日本語のHTML版はhttps://doc.rust-jp.rs/book-ja/で公開されています。 rustupを使ってオフラインで読むことはできません。 また、コミュニティによるい
こんにちは😉 @ryokotmngです。 今日は社内ドキュメントの、Rust初心者向けのクックブックを公開しようと思います。 私自身コードを書くのに四苦八苦していた頃にとても助けられたので、Rustをはじめたばかりの方の参考になれば嬉しいです。 目次 [toc] はじめに この記事では、The Bookに記載されている知識を前提としています。 Rustを全く書いたことがない方は、先に読んでみることをお勧めします。 サンプルコードが結構長いこと、実行環境があった方が良い内容も多いことから、サンプルコードは大体Rust Playgroundのリンクとなっています。 ぜひご自身で修正して遊んでみてください。 単位つきの計算を型で厳格に縛る 例えば複数の長さの単位 (mm, cm, mなど) を扱う場合に、単位が合っていない長さ同士の計算をする場合、単位を揃える必要がありますね。 この時、最終的
Author: blackenedgold Published: 2020-12-04 Last Modified: 2021-06-30 GitHub Source: md 概要 EmacsでのRust言語をプログラミングする際の環境構築について示します。 このページは以下の記事をemacs-jpのために再編集し投稿したものです。 Rustの環境構築(Emacs) | κeenのHappy Hacκing Blog ツールのインストール Rustupによるrustツールチェーンのセットアップは済んでいるものとして、他のツールの準備方法を案内します。 フォーマッタ、リンタ 公式で配布されているrustfmt(フォーマッタ)とclippy(リンタ)が鉄板です。 インストールは…既に上記の方法でインストールされています。 確認してみましょう。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く