11月のさびたニュースの主観的な選択に注目します。 このコレクションには、Rust 2018、RustRush、会議のビデオ、Amazon LambdaとFirecracker、クイズ、exonumからactix-webへの切り替え、Rustを使用する10の理由があります。
2018年の錆調査結果
8月から続いている毎年のRust投票 ( ディスカッション )の結果 が公開されています。
特に前の年と比較してダイナミクスを見ると、非常に多くの興味深い情報がありますが、専門的に言語を使用する数の増加は特に励みになります:昨年回答者の21%が仕事でRustを使用した場合、今年-すでに30%。
Rust 2018
先日、Rust 1.31がリリースされます-言語の新版をサポートする最初の安定バージョン:Rust2018。( どのような「編集」? )
新しい言語版のリリースは、公式言語ページ-beta.rust-lang.orgの再設計と一致するようにタイミングが取られました。
AWS Firecracker(アマゾンウェブサービス)
「AWCはFirecrackerを導入しました-」「Linux用のマイクロ仮想化」 :
最近ラスベガスで開催されているAWS re:Invent 2018では、Linux KVMに基づく新しいオープンソース仮想化テクノロジーであるFirecrackerの発表が行われました。 著者は、「一瞬で、仮想化されていない環境で軽量のマイクロ仮想マシン(microVM)を実行でき、リソースの効率的な使用という形で、セキュリティとワークロードの分離の形で従来のVMの利点を得ることができる」と約束しています。
このプロジェクトはGoogleのオープンソース開発に基づいていました-Chromium OSのcrosvmはRustで記述され、デバイス仮想化を使用してオペレーティングシステムを起動します(ただし、実際のハードウェアはエミュレートしません)。 そのため、FirecrackerのコードもRustで記述されており、その作成者は親プロジェクトのコードベースに修正を返すことを約束していますが、プロジェクト自体は時間の経過とともに目的が大きく異なっています。
また:
RustFest 2018 Romeのビデオレポート
- 「Rustの宣言型プログラミング」 ;
- 「セコイア:Rustの新しいOpenPGP実装」 ;
- 「Oh Boy!Rustでゲームボーイエミュレータを作成する」 ;
- 「さびFFIで死ぬ千の道」
- 「錆、科学のために!」 ;
- 「実行可能ファイルの生成の舞台裏」 。
- 「Rustの単純なCRDT」 ;
- 「成長に取り組むこと、およびその他の問題があること」
- 「SpiderMonkeyのケージング-Servoでの安全なJSバインディングの確保」 ;
- 「さびたロボットを楽しもう」
- 「Rustのリーチプロジェクトのハイライトの増加」 ;
Rust Belt Rust 2018のビデオレポート
パストフェストのすべてを見ましたか? 次に、 Rust Belt Rust 2018の別の追加を示します。
- 「コアチームトーク」-アシュリー・ウィリアムズとニコ・マタキス 。
- 「Monotron-Rustで書かれた1980年代スタイルのホームコンピューター」-Jonathan Pallant ;
- 「コンパイラが提供する構文の利便性」-Tshepang Lekhonkhobe ;
- 「錆とアクティクス」-ネイサン・ホーキンス ;
- 「Lightning Talks:Rust Quiz」-アレックス・クリクトンとデビッド・トルネイ 。
- 「Lightning Talks:Rustbots」-Rustを搭載したロボット-Rahul Thakoor ;
- 「Lightning Talks:Personal Wiki」-James Sacksteder ;
- 「Lightning Talks:Rust's Family Tree」-ジェニーマニング ;
- 「Lightning Talks:Ann Arbor Meetupの発表」-Esty Thomas ;
- 「ライトニングトーク:宇宙の錆」-ミルリン 。
- 「パーシー:Rust + WebAssemblyを使用した同形Webアプリ」-Chinedu Francis Nwafili ;
- 「RustでのAPIデザインの進化」-Simon Nicholas Heath ;
- 「錆コミュニティの維持」-Arshia Mufti ;
- 「速く動いて、物を壊さないでください:Rustの高性能ネットワーキング」-Joshua Liebow-Feeser ;
- 「State of the crates.io」-ショーン・グリフィン 。
プレイリスト全体 。
Rust Bay Area Meetupの 2時間の記録をここにドロップします 。
RustRush 2018 :モスクワでの12月15-16日カンファレンス
RustRush 2018は、Web、ブロックチェーン、高性能およびシステムプログラミングに特化したRustの開発者向けの会議です。
残り2週間以内です! CfPが完了し、 最終レポートプログラムがアップロードされました。
cheats.rs
cheats.rs ( リポジトリ 、 ディスカッション ) -Rustメモ+他の同様のメモへのリンクの選択。 舌に浸されると非常に便利です。
ちなみに、このサイトはZolaを使用して作成されました(新しいパッケージと更新されたパッケージについては、以下のセクションを参照してください)。
ExonumをIronからactix-webに翻訳した方法
Gorthauer87の比較的扱いにくい汎用コードを使用した実践的な経験に関する記事。 ガットコードは場所によって複雑ですが、ユーザーにとっての最終結果は便利で美しいものです。
Rustを使用する10の明らかな利点
freecoder_xxは、Rustのそれほど高度でない長所に関するレビュー記事を書きました。
この記事では、Rustを使用することで得られる非自明で特に宣伝されていない多くの利点を収集しました。これは、プロジェクトでこの言語を選択する際に役立つことを願っています。
錆クイズ
Alexのレポートから、極端なケースに関する中程度の非常に難しい質問とRustの「いぼ」でサイトが成長しました( ディスカッション )。 「表示」ボタンをクリックすると、コード例で何が起こっているかの詳細な説明が表示されます。
この全体のソースコードはここにあります 。 似たような形式のもっとクールな質問を知っていれば、PRを行うことができます。
埋め込み
- OxidizeConf ( ディスカッション ) -Rustの組み込み/ IoTに関する会議を発表しました;
- 「今年のEmbedded Rust」 -今年の組み込みシステム向けプログラミングのワーキンググループの進捗状況を要約します。
- アクティブなサブコミュニティが組織されています。
- 常夜灯なしで開発を行うことが可能になりました。
- サポートされる鉄のリストは大幅に拡大しました。
- 追加のツールと既製のプロジェクトテンプレートの開発により、エントリーのしきい値が低下しました。
- ドキュメントが改善されました。特に、次のものがリリースされました。
- Embedded Rustの本 -メインの本。
- 発見の本 -主題領域の紹介;
- エンベドノミコン -ハードコア向け。
- Awesome Embedded Rust-興味深いプロジェクトのリスト。
- 組み込みRust開発環境のブートストラップ ( ディスカッション )-ワークフローと組み込みツールの概要。
- embedded-sdmmc-rs ( 説明 )-SD / MMCカードの読み取りを可能にし、 no_stdをサポートします 。
- ドローン ( ディスカッション )-クアッドコプター用のソフトウェアとコントローラー;
Webassembly
- 「Rustを使用したWebAssemblyのプログラミング」 ( ディスカッション )-本のベータ版へのオープンアクセス;
- typed-html ( 説明 )
html!
マクロを実装しhtml!
、 JSX互換の構文を使用してRustコードからHTMLドキュメントを作成できます(ボーナス: WASMでも正常に機能します! )。 - HOWTO:rustupのない安定したさび上でWebAssemblyをセットアップします;
- テラリウム ( ディスカッション )-FastlyのWASMを使用した実験用プラットフォーム。
- php-ext-wasm ( 説明 )- パリティテック/ wasmiに基づいて、PHPからWASMを直接起動するプロジェクト。
- Wasmer ( ディスカッション 、 コード )-CraneliftベースのJIT最適化WASMコンパイラ。
- ElmのアーキテクチャをRustとWebassemblyに持ち込む ( 議論 ) -willow について 、 「Elmアーキテクチャ」をRustに転送する試み。
イグロストロイ
- twitter.com/rust_gamedevを開始しました( rustwasm 、 rustembeddedなどに似ています )。これを誰も行ったことがないのは奇妙です。
- DICE / EAからの移民によって設立された新しいEmbarkスタジオは、 Rustを主言語として使用する意向を発表しました ( ディスカッション )。
- ビデオ「モジュレータークレートアンドプレイアプリ(Rustコーディングシリーズ)」 ( ディスカッション )-Andrea Pessino(CTO Ready at Dawn)は、 モジュレーターライブラリのパトスビデオプレゼンテーションを記録しました。
- 錆びた廃 (( 議論 )-拡張可能なベーグル 。
- Alexandru Ene:Rust And Game Development ( ディスカッション )-さびたゲームビルディングの現在の状態と、開発すべき方向についての考え。
- Vulkano 0.11がリリースされました ( ディスカッション )-ドキュメントの改善とシェーダーの操作、 Tomakaは開発(およびゲーム開発全般)から離れました。
- grr ( ディスカッション ) -OpenGLの別のラッパー(redditのディスカッションではgliumとの比較があります )、すぐにPBRの例 ( 写真 )になります。
- glsl-0.13とそのビジターパターン -モジュールglslの改良::構文と「ASTビジター」。
- / r / rust:「Rust in AAA game engine」 -大規模なゲームエンジンでRustを使用する見通しについて非常に賢明な議論。
- 今月のrustsim#2(2018年11月) :
- 変形可能なオブジェクトが改善されました 。
- nalgebra / ncollideのコードとドキュメントに対する多くのマイナーな改善。
- 空間データ構造を持つ新しいパッケージ「スペース」の作業が開始されました。
アメジストエンジンエコシステム:
- アメジスト財団が設立されました-アメジスト財団 ( 議論 )-主に寄付を受け入れるため( FAQ );
- 別のアメジストフォーラムが登場しました。たとえば、 エンジン上のゲームのリストを含むwikiトピックがあります 。
- ロゴが変更されました 。
- Laminar 0.1 ( ディスカッション )-UDP( 機能のリスト )上で動作するゲーム用のネットワークライブラリ。Amethystに統合されています。
- ビデオ「Everpuzzle-Rust for GamesでAmethystエンジンを使用する」 -Everpuzzleパズル開発プロセスのプレゼンテーション。
- 楽しみの始まり -Azrielは、2Dキャラクターの異なるゾーン間の衝突の実装について語っています。
- LemRunner ( ディスカッション 、 コード )- ゲームオフ2018のレミングとランナーの混合物。
一行で
- IntelliJ-Rustは進化を続けています: #86 、 #87-特に、標準マクロの動作が改善され、LLDBとの統合が改善され、インポートグループ化( GIF )コマンドと折りたたみ可能領域( GIF )のサポートが追加されました。
- 2019年3月から、crates.ioに何かを公開するには、確認済みの住所 ( ディスカッション ) が必要になります。
- FirefoxでのRust-codeのシェアは次第に増加しています ( 議論 )-すでにコードベースの約6%です;
- 2018年にRustコンパイラーを高速化する方法:NLLエディション ( ディスカッション )-Rastコンパイラーの英雄的な加速;
- 毎晩の非同期/待機サポートの開始 ( 説明 )-非同期構文はまだすぐには安定していませんが、慣れることはできます。
- RustがKentikのパフォーマンスを高く維持する方法-KentikがバックエンドでのRustの役割について語ります。
- ハンドルでしか持てないハンマー ( ディスカッション )-型システムを正しく使用する利点の明確なデモンストレーション。
- Rustを使用して独自のシェルを構築する ( ディスカッション )-すべてのプログラマーが少なくとも1つのシェルを作成する必要がありますか? :);
- Rustでできないこと ( ディスカッション )-Rustがコードに課す主な制限、それらが必要な理由、必要に応じてそれらを回避する方法をリストします。
- NLL後:借用データと歩inパターンからの移動 ( ディスカッション )-ニコはNLLのシリーズを続け、将来の計画を立てます。
- Stacked Borrows Implemented:An Aliasing Model for Rust ( Discussion )-Ralphは引き続きRustのセマンティクスを掘り下げます;
- Rustのstd :: sync :: Mutex in D ( ディスカッション )の実装 -この記事はRustプログラマー向けではありませんが、標準のさびたmutexよりも優れた教育プログラムを提供します。
- / r / rust:Rustに切り替える際の主な課題は何ですか? -Rustへの移行の難しさに関する議論。
- / r / rust:「ライブラリパニック対「結果」を返すのはいつですか?」 )-「パニック対結果」のニュアンスに関する非常に良い議論。
- Rust Craneliftコンパイラの代替バックエンドは進化を続けています
--opt-level=0
LLVMよりもわずかに優れたパフォーマンスのコードを既に生成でき、30%高速になります( 説明 )。
新規および更新されたパッケージ
1か月間の新しいパッケージまたは古いパッケージの重要な更新:
- tr ( ディスカッション ) -Qtの 'tr'に触発されたアプリケーションローカリゼーション用マクロ。
- cargo nono ( ディスカッション )-外部ヒューリスティックによれば、no_stdを破る依存関係を見つけようとするカーゴ拡張。
- immense ( ディスカッション ) -3次元グリッドを生成するためのパッケージ。
- ロゴ ( ディスカッション )-「信じられないほど高速な」字句アナライザーを作成できます。
- fluid ( ディスカッション ) -XUnitに触発されたテスト作成フレームワーク。
- ゲリラ ( ディスカッション )-Rustの「モンキーパッチ」の実装に関する実験(ところで、パッケージの名前について: 「モンキーパッチ」という用語の語源について考えたことはありません)。
- serde_postgres-文字列をpostgresから任意の構造に逆シリアル化する簡単な方法(逆シリアル化はサポートされていません);
- pgxr -PostgreSQLのさびた拡張機能を記述できます。
- MutGuard ( ディスカッション )-保存されたデータへのリンクを変更するたびに(たとえば、不変式をチェックするために)任意のコードを実行できます。
- Zola 0.5 ( ディスカッション )-静的サイトジェネレーターGutenbergは、その名前をZolaに変更し、CSV / TOML / JSON、ページテンプレート、 「透明セクション」からデータを読み込みました。
- rand 0.6 ( ディスカッション )-乱数を生成するためのライブラリに加えて、独自の本を入手しました 。
- ライフガード0.6 ( ディスカッション )-再利用可能なオブジェクトのプールを作成できます。 新しいバージョンでは、パフォーマンスが向上し、再帰ポインターの作成が可能になり、利便性のためにユーティリティ特性が追加されました。
- Pijul 0.11 ( ディスカッション 、 コード )- パッチ理論に基づいたバージョン管理システムは、新しいTokioに移動し、不完全なクローンを取得し、SSHプロキシと構成ファイルをサポートしました。
RFC
RFC(Request for Comments)によると、言語がどの方向に動いているかを観察することは非常に便利なので、ここに興味深いものがあります。 PRの見出しに「レンダリング済み」リンクがあります。これにより、RFCは読み取り可能な形式で利用できます。
今月は受け入れられました:
- RFC#2561将来の可能性 -新しいRFCには、提案されたアイデア(meta-RFC)の開発の見通しに関するセクションがあります。
- RFC#2591徹底的な整数パターンマッチングの安定化-徹底的な数値比較の安定化。たとえば、
u8
変数マッピングに255個の値がすべてリストされている場合、_
ブランチは不要です。
検討中のRFC:
- RFC#2592 Stabilize 'std :: task' and 'std :: future :: Future' -futuresを安定化することを提案します(これはasync / await RFC構文とは別です)。
- RFC#2593列挙バリアントタイプ -列挙オプションを使用する可能性を拡張し、通常の構造に近づけることを提案します。
- RFC#2584構造レコード -匿名構造を追加することを提案します(または名前付きフィールドを持つタプルと呼ぶことができます)。
- RFC#2602#[attribute] s galore-属性をVL、型、境界、その他の多くのものに掛けることを許可することを提案します。
- RFC#2603 Symbol Mangling v2- シンボルを装飾するスキームを 組み合わせることを提案します。
- RFC#2500ニードルAPIでは 、
std::needle
over abstractions over&str
、&mut str
、&[T]
、&mut [T]
、Vec<T>
および&OsStr
ます。
Pre-RFC:
- Anonymous Variant TypesのPre-RFC、最小限の匿名合計タイプの提案 -追加を提案
ロバ(_|_)
(NoneError|ParseIntError)
などのタイプの匿名列挙 - Pre-RFC:sum-enums-構文
enum(A, B, C, ..)
およびenum Foo(A, B, C, ..)
を使用して新しいタイプの列挙を導入することを提案します。 - 錆の特性とそのプライバシーの欠如 -phaazonは、 特性にプライベートメソッドを持つ機能を追加することを提案します( ここで私は何らかの形で非常に懐疑的です )。
フェリスを正式に採用したRFC#2328は拒否されました- フェリスは公式のマスコットを作るのにあまり意味がないと判断しました。
ご覧いただきありがとうございます!
重要なリンクやイベントを追加していない場合は、コメントにドロップしてください。 :)
ここから撮影した KDPV、各プロジェクトのサイトからの残りの写真。