並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 95件

新着順 人気順

rustの検索結果1 - 40 件 / 95件

  • RustでAPIサーバーを書くのが思ったより良い

    最近いろんなところで採用事例が増えてきたRustですが、Webサービス開発でのAPIサーバーを書くのにRustは向いてないと言われたりします。Rustの第一のターゲットはシステムプログラミングでありGCがないためAPIサーバー開発でシビアなメモリ管理はしたくないというのは一理あるのですが、RustでAPIサーバーの開発を実際にやってみるとむしろ開発体験が結構いいなと感じます。パフォーマンスのために難しい所有権を無理にがんばるみたいなマイナスのイメージはほとんど当てはまらなかったです。 Rustの難しいライフタイム、所有権があまり出てこない Rustにおいて難しいとされるライフタイム、所有権といった概念があり私も書く前はかなり身構えていたのですが、これに苦しむことは思ったよりも少ないです。その要因はWebサーバーで扱う処理のほとんどがリクエスト・レスポンスモデルでデータの流れが一方向でシンプ

      RustでAPIサーバーを書くのが思ったより良い
    • Rust言語を、人命に関わるような決定的に安全性が重要なシステムに使用することをサポートする「Safety-Critical Rust Consortium」設立

      Rust言語を、人命に関わるような決定的に安全性が重要なシステムに使用することをサポートする「Safety-Critical Rust Consortium」設立 Rust言語を推進する「The Rust Foundation」は、人命や財産に関わるような安全性が決定的に重要になるシステムのためにRust言語を責任を持ってサポートするためのコンソーシアム「Safety-Critical Rust Consortium」の設立を発表しました。 Rust言語は、C言語のように低レイヤのシステム開発向けに作られたプログラミング言語です。 不正なメモリ領域を指すポインターなどを許容しない安全なメモリ管理や、マルチスレッド実行においてデータ競合を排除した高い並列性を実現している点などの特長を備えているため、安全かつ高速なアプリケーション開発を実現します。 セーフティ・クリティカルとは? 「セーフティ

        Rust言語を、人命に関わるような決定的に安全性が重要なシステムに使用することをサポートする「Safety-Critical Rust Consortium」設立
      • Rustのデータ可視化ライブラリCharmingに入門した

        Charmingとは Charmingは、Rustの強力なチャートレンダリングライブラリです.美しく高品質なデータ可視化します.GitHub上で以下のようなグラフが紹介されています. 後述しますが,このCrateは適切にStructが分割されているので,可読性の高い可視化用のコードを作ることができます. 簡単に散布図を作成する Datasaurusのデータを使います.ここでは,csvファイルをダウンロードして使っています. もちろん表示するのはdinoです. この記事では,cargo new project_nameした後に,data dirとoutput dirを作っていることを想定します.

          Rustのデータ可視化ライブラリCharmingに入門した
        • 思考のスピードでコードを書け!!Rust製の次世代エディタ「Zed」

          はじめに 周りとは一味違ったツールを使いたくなるお年頃、皆さんも経験されたことがあるかと思います。 え、ない? 今回は「Code at the speed of thought(思考のスピードでコードを書く)」というキャッチコピーを掲げているエディタ「Zed」を発見したので紹介していこうと思います。

            思考のスピードでコードを書け!!Rust製の次世代エディタ「Zed」
          • Rustを選んで後悔している ー Rustをdisる珍しい記事が海外で話題

            6月29日、Austin Starks氏が「I spent 18 months rebuilding my algorithmic trading platform in Rust. I’m filled with regret.」と題した記事を公開した。この記事では、Rust言語を用いてアルゴリズム取引プラットフォームを再構築した経験と、その結果、Rust言語に対して批判的なスタンスを取るようになった理由が詳しく述べられている。 著者はその高速性と安全性から、Rustが完璧なプログラミング言語であると信じていた。多くのガイドや記事がRustを絶賛しており、著者もその波に乗ってTypeScriptからRustへの移行を決意した。しかし開発に18ヶ月を費やした結果、著者はその選択を後悔することとなった。 著者が特に問題視したのは以下の点である。 1. 冗長で直感に反する構文と意味論 Rust

              Rustを選んで後悔している ー Rustをdisる珍しい記事が海外で話題
            • Go, Ruby, Rust等の言語に存在した、Windows環境でコマンドインジェクションを引き起こす脆弱性"BatBadBut" - Flatt Security Blog

              ※本記事は筆者RyotaKが英語で執筆した記事を、弊社セキュリティエンジニアkoyuriが日本語に翻訳したものになります。 はじめに こんにちは、Flatt SecurityでセキュリティエンジニアをしているRyotaK( @ryotkak )です。 先日、特定の条件を満たした場合に攻撃者がWindows上でコマンドインジェクションを実行できる、いくつかのプログラミング言語に対する複数の脆弱性を報告しました。 本日(2024/04/09(訳者注: これは英語版記事の公開日です))、影響を受けるベンダーがこれらの脆弱性に関するアドバイザリーを公表しました。 その影響は限定的なもののCVSSスコアは非常に高く、混乱が予想されるため、脆弱性に関する詳細を本記事にまとめます。 はじめに TL;DR CVSSスコア 技術詳解 根本原因 CreateProcessのラッパー cmd.exeのパース規則

                Go, Ruby, Rust等の言語に存在した、Windows環境でコマンドインジェクションを引き起こす脆弱性"BatBadBut" - Flatt Security Blog
              • Rust製JavaScriptエンジン『Boa JS』を試してみた

                主要なJavaScriptエンジンのTest262を毎日実行して結果を載せているtest262.fyiというサイトがあります。 (Test262とは最新のECMAScriptを実装できているかどうかのテストです。) このサイトの、2024/6/5現在の実装率ランキングはこちらです。 test262.fyiの画面キャプチャ(2024/6/5) V8(ChromeやNode.js、Deno等)、JavaScriptCore(SafariやBun等)、SpiderMonkey(Firefox等)という、大手エンジンとほぼ横並びで4位に食い込んでいるBoaとは何者でしょうか。 Boaは公式曰く『Rustで書かれた実験的なJavascriptのレキサー、パーサー、コンパイラー』です。これだけ揃えば、JavaScriptエンジンと言って差し支えないと思います。RustアプリケーションにJavaScri

                  Rust製JavaScriptエンジン『Boa JS』を試してみた
                • Rust+WebAssemblyを使ったWebアプリでの高速画像処理入門 - アダコテック技術ブログ

                  要約 背景 WebAssembly (WASM) とは? Rust言語とは? サンプルアプリ概要 LBP特徴量計算をRustで実装 フロントエンド環境構築 バックエンド環境構築 スキーマ定義 Rust実装 WASMバイナリの生成 TypeScript実装 実行結果 まとめ メンバー募集しています! おまけ こんにちは!美味しいタコスを食べることを専門としているプロダクト開発部エンジニアの井上です。 要約 WebAssembly(WASM)、Rustは近年注目されている技術であり、これを利用することでWebアプリケーション上で高速な画像処理を実現できるよ。 我々も画像前処理を行っていたWindowsデスクトップアプリケーションを、WebAssembly+Rustを使用してWebアプリケーションに置き換えたよ。 Rust言語で実装した画像処理をWASMにコンパイル、そしてWebアプリケーション

                    Rust+WebAssemblyを使ったWebアプリでの高速画像処理入門 - アダコテック技術ブログ
                  • Rust言語のコアライブラリをDart言語で実装した「Rust Core 1.0」がリリース。Rustの主な型や便利な機能がDartで使えるように

                    Rust言語のコアライブラリをDart言語で実装した「Rust Core 1.0」がリリース。Rustの主な型や便利な機能がDartで使えるように Rust Coreの開発チームは、Rust言語のコアライブラリをDart言語で実装した「Rust Core 1.0」をオープンソースとしてリリースしました。 Rust Coreを用いることで、Dart言語にRust言語が持つ一般的な型やさまざまな便利な機能を取り込むことができるようになります。 合わせて、Rust Coreのドキュメント「Rust Core Book」も公開されました。 DartはGoogleが主導してオープンソースで開発されているプログラミング言語です。クロスプラットフォーム対応のモバイルアプリケーション開発に対応したFlutterフレームワークで用いられている言語として知られています。 なぜDart言語でRustのコアライブ

                      Rust言語のコアライブラリをDart言語で実装した「Rust Core 1.0」がリリース。Rustの主な型や便利な機能がDartで使えるように
                    • Writing an OS in 1,000 Lines を Rust でやってみた

                      1000行でOSをつくってみる Writing an OS in 1,000 Lines という1000行前後でOSをつくれるコンテンツがあります。 このコンテンツ自体はC言語を前提としているのですが、Rustでもシステムプログラミングが可能なので、今回はRustで挑戦してみました。 Rust で Writing an OS in 1,000 Lines をやってみるときのポイントをまとめておきます。 RISC-V このコンテンツでは RISC-V をターゲットアーキテクチャとしていて、RISC-V のOSを開発します。 RISC-V はオープンソースのRISC (Reduced Instruction Set Computer) のISA (命令セットアーキテクチャ) です。 詳しい説明は、RISC-V で検索すれば数多くヒットします。 この RISC-V 関連で、参考にした主な情報源は

                        Writing an OS in 1,000 Lines を Rust でやってみた
                      • GitHub - letmutex/htmd: A turndown.js inspired HTML to Markdown converter for 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 - letmutex/htmd: A turndown.js inspired HTML to Markdown converter for Rust
                        • GitHub - togatoga/kanpyo: Japanese Morphological Analyzer written 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 - togatoga/kanpyo: Japanese Morphological Analyzer written in Rust
                          • Rust 2024 Editionがやってくる! - paild tech blog

                            お手伝いの@helloyukiです。今日はRust 2024エディションの話についてまとめておきたいと思います。ちなみに注意点ですが、Rust 2024エディションはまだリリースされていません。したがって、この記事の情報(2024年4月ごろ執筆開始)はリリース時点で変更されている可能性があります。 エディションとは Rustには「エディション」(あえて日本語にするなら「版」?)という概念があります。エディションは、後方互換性を保ちながらも、新しいキーワードの追加をはじめとする言語全体に影響を与えるような変更を加えるものです。3年に一度エディションは改定されることになっており、前回は2021年に改定がありました。これまでのエディションとしては、2015、2018、2021の3つが現状あります。 エディションの仕組みは2018年に導入されたものでした。2018年当時、Rustは非同期関連の言語

                              Rust 2024 Editionがやってくる! - paild tech blog
                            • Rustに特化した統合開発環境「RustRover」の一般提供開始 JetBrains

                              JetBrainsは2024年5月22日(米国時間)、Rust用スタンドアロン型IDE(統合開発環境)「RustRover」の一般提供を開始した。コード補完、デバッグ機能、リファクタリングツールなどを備え、Rustによる開発プロセスを効率化できるという。 JetBrainsは、JavaおよびKotlin向けIDE「IntelliJ IDEA」とCおよびC++向けIDE「CLion」のプラグインでRustをサポートしてきた。だが、Rustに特化したIDEへの要望がコミュニティーから多数寄せられてきたことを踏まえ、RustRoverの投入を決めた。 「非商用利用」とは? 新しいライセンスモデル 関連記事 RustでWebアプリの実装にチャレンジしてみよう【準備編】 Rustを使った「Webアプリ」の開発はどのようなものになるのでしょうか? 本連載のスタートとなる今回は、アプリ開発の下準備として

                                Rustに特化した統合開発環境「RustRover」の一般提供開始 JetBrains
                              • Making a Secure Chat in Rust

                                PreludeHello! Today, we are going to make a secure chat in Rust. “Secure” means that we don’t want attackers/eavesdroppers to be able to find out the contents of our messages (privacy), and we also want to make sure that we know who we’re talking to on the other side (authentication). To do this, we are going to use some common cryptographical concepts. I’ll explain all the cryptographical concept

                                • Announcing Rust 1.79.0 | Rust Blog

                                  The Rust team is happy to announce a new version of Rust, 1.79.0. Rust is a programming language empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, you can get 1.79.0 with: $ rustup update stable If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes

                                    Announcing Rust 1.79.0 | Rust Blog
                                  • ざっと理解するRust 2024 Edition

                                    本記事は、TechFeed Experts Night#30 〜 Rust / WebAssembly最前線のセッション書き起こし記事になります。 イベントページのタイムテーブルから、その他のセッションに関する記事もお読み頂けますので、一度アクセスしてみてください。 本セッションの登壇者 セッション動画 では、「ざっと理解するRust 2024 Edition」ということで発表させていただきます。 matsu7874と申します。今は株式会社estieでソフトウェアエンジニアとして働いていて、普段からRustでWebアプリケーションを開発する仕事をしています。 今日はまずEditionとは何ぞやという説明をして、その後にRust 2024 Editionの変更点について、今、出ている情報に基づいてお話しします。 3年ぶりの新 Edition がリリース まずEditionですが、今年2024

                                      ざっと理解するRust 2024 Edition
                                    • IPC in Rust - a Ping Pong Comparison

                                      I wanted to explore different ways of communicating between different processes executing on the same machine, and doing so as fast as possible. We're focussing on high speed inter-process communication (IPC), but some of these approaches can be extended across a network. We'll do this exploration in Rust. A reminder that since these are independent processes, most approaches you'd take within-pro

                                      • TSのType, Interface, Classから秒でテストデータ作成するnpm-pkg公開(Rust製)

                                        はじめまして🙋 タイトルの通りTypescriptのType, Interface, Classから秒でテストデータ作成するツールを公開しました👏👏👏 boostestと言います🚀🚀🚀 boostestとは? npmでインストールするコマンドです。 日本語のREADMEには利用方法の動画もあります✨✨ ざっくりいうと下記のようなツールでして... typescriptのtypeやinterface, classから瞬時にテストデータ作成できる📝 typeやinterfaceはテストデータを部分的に上書き可能🏗️ テストデータは実際のコードとして出力されるため、ユーザーのアセットになる💸 下記のようにインストールできます。

                                          TSのType, Interface, Classから秒でテストデータ作成するnpm-pkg公開(Rust製)
                                        • 999 crates of Rust on the wall

                                          tl;dr I’ve been comparing crates on crates.io against their upstream repositories in an effect to detect (and, ultimately, help prevent) supply chain attacks like the xz backdoor1, where the code published in a package doesn’t match the code in its repository. The results of these comparisons for the most popular 9992 crates by download count are now available. These come with a bunch of caveats t

                                          • Rust is for the Engine, Not the Game - Barrett's Club

                                            Last updated on June 6, 2024. Rust is for the Engine, Not the Game Macros are cool! But, if we're going to create another language anyways... LogLog Games recently posted Leaving Rust gamedev after 3 years, a must-read article for folks who're doing game development in Rust. It focuses on a small indie developer organization and their experiences with Rust development. If you haven't given it a re

                                              Rust is for the Engine, Not the Game - Barrett's Club
                                            • Google Geminiでゲーム移植?ブラウザゲームの"Rust+WASM版"をAIに作らせる | Agar.io 2024 - Qiita

                                              Google Geminiでゲーム移植?ブラウザゲームの"Rust+WASM版"をAIに作らせる | Agar.io 2024JavaScriptgameRustAIWebAssembly 皆さんは Google AI Studio を使っていますか? このサービスは、テキストや画像だけでなく、動画やコードなどの様々なデータを理解し、Gemini に質問したり指示したりできる強力なツールです。 ただ、注目すべきは かなり長いプログラムのコードを食わせてそれを解析できる ということです。 以下は slither.io というブラウザゲームのjsファイルを丸ごと食わせて解説してもらった例 コードを全部読まなくても、Gemini に解析してもらってどういう処理があるとか、サーバーとどんな通信を行っているのかを聞くとかなり精度良く回答が帰ってきます。 つまり、コードの中身をほとんど読まなくてもだい

                                                Google Geminiでゲーム移植?ブラウザゲームの"Rust+WASM版"をAIに作らせる | Agar.io 2024 - Qiita
                                              • Rust Foundation

                                                DOVER, DELAWARE, USA, June 12, 2024 – The Rust Foundation, AdaCore, Arm, Ferrous Systems, HighTec EDV-Systeme GmbH, Lynx Software Technologies, OxidOS, TECHFUND, TrustInSoft, Veecle, and Woven by Toyota are thrilled to jointly announce the Safety-Critical Rust Consortium. The primary objective of this group will be to support the responsible use of the Rust programming language in safety-critical

                                                  Rust Foundation
                                                • Rustでリバーブを実装する

                                                  Parakeet株式会社でResearcherをしている金子(nadare)です。CPUで動く軽量AIボイスチェンジャーParavoにおいて、リバーブやイコライザといったエフェクターをかける機能をRustで実装しました。本記事ではRustで実装した理由や用いたライブラリについて説明します。 リバーブについて リバーブは音に残響音や反射音を加える空間的エフェクトで、通常の音をホールで演奏した音や狭い空間で鳴らした音のように加工します。リバーブの実装にはハードウェア・ソフトウェア等様々な手法がありますが、今回は畳み込み演算を用いたリバーブの実装を行いました。 畳み込み演算で実装するリバーブには、Room Impulse Response(RIR)という音の信号を用います。これは再現したい空間で拍手をしたときに得られるような音で、様々な環境で収録したRIRを集めたデータセットや、pyroomac

                                                    Rustでリバーブを実装する
                                                  • Enter paradis — A new chapter in Rust's parallelism story | Andreas Longva

                                                    Rust is a great language for data-parallel problems with relatively simple parallel access patterns. It particularly excels when the data can be split up into contiguous chunks. On the other hand, things can get messy for parallel access patterns that are non-contiguous or less structured. In this post, I will show you an uglier side of parallelism in Rust. Thankfully, it is not a fundamental flaw

                                                    • GitHub - Proglang-Uni-Freiburg/minirust: an interpreter for a subset of the rust language with main focus on algebraic data types + pattern matching

                                                      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 - Proglang-Uni-Freiburg/minirust: an interpreter for a subset of the rust language with main focus on algebraic data types + pattern matching
                                                      • スタックとヒープについて自分でまとめ直してRustの概念を理解する - Qiita

                                                        Rustを勉強するときにメモリ周りの知識が必要になることを痛感した。 PythonやGoを使っていると、メモリ周りの知識はあまり必要なかった(筆者が気にしていなかった)ためここにまとめていく。 メモリ領域 プログラムが実行される際には、メモリ領域が必要になる。 メモリ領域は大きく分けて4つあり、それぞれ異なる役割を持つ。 その4つの領域は以下の通り。 コード領域 静的領域 グローバル変数や静的変数が格納される領域。 constで定義された定数もここに格納される。 スタック領域 関数の呼び出し時に使用される領域。 関数の呼び出し時に引数やローカル変数が格納される。 ヒープ領域 プログラム実行中に動的に確保される領域。 mallocやnewなどの関数ではここに確保される。 これらメモリ領域のうちコード領域と静的領域はコンパイル時に確定するため、実行時に変更されることはない。 一方で動的に確保さ

                                                          スタックとヒープについて自分でまとめ直してRustの概念を理解する - Qiita
                                                        • 【海外記事紹介】なぜ私がZigではなく(いまだに)Rustを使っているのか

                                                          6月15日、Pekka Enberg氏が「Why I am not yet ready to switch to Zig from Rust」と題した記事を公開した。この記事では、ZigからRustに移行しない理由について詳しく紹介されている。 以下に、その内容を簡潔にまとめて紹介する。 C言語への愛着とその問題点 Enberg氏は、C言語のプログラミングに対する愛着を述べつつ、C言語が安全でないことや低レベルな言語であることに言及している。多くのコードを手作業で書かなければならない点や、デバッグに多くの時間を費やす必要がある点が問題とされている。 Rustのメモリ安全性と複雑性 Rustが登場した際、Enberg氏はそのメモリ安全性に魅力を感じたが、ツールの変化やborrow checker(借用チェッカー)の理解に苦労し、一度は諦めた。しかし、2021年にRustをプロフェッショナルに

                                                            【海外記事紹介】なぜ私がZigではなく(いまだに)Rustを使っているのか
                                                          • The Inconceivable Types of Rust: How to Make Self-Borrows Safe

                                                            One of the first things any Rust programmer learns is that you can’t pass an object and a reference to that object around at the same time. It’s impossible to do, even indirectly. This limitation has been the subject of countless questions on Stack Overflow and posts on Reddit and the Rust forums and anywhere else where Rust programmers might ask for help. It’s so well-known that most people treat

                                                            • Why I am not yet ready to switch to Zig from Rust

                                                              Jun 19, 2024 Why I am not yet ready to switch to Zig from Rust I am not going to lie: I love programming in C. I know it’s a little bit irrational, but programming in C just feels right. Perhaps that’s because I did spend a lot of time programming with C as I contributed to the Linux kernel. Those were good times because I had the opportunity to learn from some of the best C programmers in the wor

                                                                Why I am not yet ready to switch to Zig from Rust
                                                              • Master Rust by Playing Video Games!

                                                                Screenshot from the Bot Beats game in action.This will be the first in a series of Rust tutorials. We will start from the very basics on how to install it and move into the realm of borrowing, traits and so much more. And how will we learn all this you may ask. By playing video games! ShortInstall Bot Beats.Install Rust.Create a Rust robot in Bot Beats.Install Visual Studio Code (or your favorite

                                                                  Master Rust by Playing Video Games!
                                                                • Rust Foundation、「Rust」の責任ある使用に向けてコンソーシアムを立ち上げ

                                                                  プログラミング言語「Rust」の普及と開発を支援する非営利団体であるRust Foundationは2024年6月12日(現地時間)に、重要なアプリケーションにおけるプログラミング言語の責任ある使用を目的としたグループ「Safety-Critical Rust Consortium」を発足させた(注1)。 企業やユーザーがメモリ安全性の高い言語を使える環境を構築 同コンソーシアムには、AdaCoreやFerrous Systems、OxidOS、Lynx Software Technologies、TrustInSoft、Woven by Toyotaなど、新規および既存のメーカー、ソフトウェア企業、その他の組織が参加している。 このコンソーシアムは、(電力やガス、鉄道、空港などの)重要インフラやその他のプロバイダーにおける開発で、安全なプログラミング言語であるRustの利用を拡大する取り

                                                                    Rust Foundation、「Rust」の責任ある使用に向けてコンソーシアムを立ち上げ
                                                                  • I spent 18 months rebuilding my algorithmic trading platform in Rust. I’m filled with regret.

                                                                    By far the best algorithmic trading experience. Learn to conquer the markets by deploying algorithmic trading… I was a young, hopeful Rust fanatic. On paper, Rust seemed like the programming languages designed by the gods. Not only is it the fastest programming language out there, its also one of the safest. I’m not alone in thinking Rust was this perfect language. If you read about the Rust progr

                                                                      I spent 18 months rebuilding my algorithmic trading platform in Rust. I’m filled with regret.
                                                                    • Making a const version of Rust's array::from_fn - How hard can it be? | Blog | Guillaume Endignoux

                                                                      Writing const functions has been supported since Rust 1.31 in 2018. These functions can be evaluated at compile time, which is for example useful to shift expensive calculations before the program runs. Knowing values at compile time is also necessary for const generic parameters, a feature available since Rust 1.51 in 2021. Even though const functions have existed for 6 years, only a subset of Ru

                                                                      • Scalable server design in Rust with Tokio

                                                                        Tokio, an asynchronous runtime for Rust, is probably the most widely used one while there are several runtime implementations. Many OSS in Rust, such as web framework applications (rocket, warp, actix, etc), are built on Tokio. With Tokio, it's easy to implement network server applications. However, typical code that you often find in guide books or such scales poorly on multiple CPUs. I'll explai

                                                                          Scalable server design in Rust with Tokio
                                                                        • #Teoとは何か?Teo(テオ)はスキーマ中心のrust,node,js,python用の次世代Webフレームワーク #六09

                                                                          #Teoとは何か?Teo(テオ)はスキーマ中心のrust,node,js,python用の次世代Webフレームワーク #六09 https://github.com/teodevgroup/teo より 紹介 テオは スキーマ中心 rust、node。js、python 用の次世代 Web フレームワーク。 ハイライトと機能GraphQL と Prisma にインスパイアされた革新的なスキーマ定義データベースの自動移行Rust、Node。js、Python をサポートしていますMySQL、PostgreSQL、SQLite、MongoDB をサポートしています生成された ORM タイプとインターフェイスフロントエンド用の生成されたクエリクライアント非常に効率的でパフォーマンス的ですデータのサニタイズ、変換、検証内蔵ユーザーセッション組み込みの許可チェックまずはミドルウェアからカスタムルート

                                                                          • OpenAPI Generatorで生成したRustのコードを本番利用するまで - Qiita

                                                                            これは株式会社LabBase テックカレンダー Advent Calendar 2022 4日目の記事です。 株式会社LabBaseでエンジニアをしている高橋です。 昨日の記事は @yiwi さんによるRust学習の試行錯誤の記事でした。(こちら) 今回はOpenAPI Generatorで生成したコードRustのコードを、検証プロダクトの本場環境利用するまでに行ったことについて紹介します。 TL;DR rust-serverでサポートしてない機能に対して、自力で実装して乗り切った OSSを使う際は自己責任で OpenAPI GeneratorのRust言語サポートについて OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and

                                                                              OpenAPI Generatorで生成したRustのコードを本番利用するまで - Qiita
                                                                            • Rust でベクター型 (Vec) を扱う

                                                                              Vec 型とは?Rust のベクター型 (Vec<T>) は、特定の型 (T) の要素を保持する可変長配列です。 サイズが固定であれば、通常の配列 (array) を使った方が効率的です。 次の例では、Vec::new 関数で空の Vec<i32> インスタンスを作成し、push メソッドにより動的に要素を追加しています。 let mut v: Vec<i32> = Vec::new(); // 型は推論されるので省略可能 v.push(10); v.push(20); v.push(30); println!("{:?}", v); //=> [10, 20, 30] 動的に要素を追加/削除するためには、Vec 変数は mut を付けて定義しておく必要があります。 この例の場合、push メソッドの使い方から、要素の型は i32 であることが推測されるので、Vec インスタンスの作成時に

                                                                                Rust でベクター型 (Vec) を扱う
                                                                              • LLVMのstack move optimizationの効果をRustで確認する - Qiita

                                                                                khei4さんの功績によって、LLVM17では部分的に不要なmemcpyを排除することができるようになりました。 具体的なケースではRustのcodegen testを追加するPRがわかりやすいです。 実際にこのコードの生成するLLVM IRをみてみましょう。 rustc 1.75.0(LLVM17)で実験 #![crate_type = "lib"] #[repr(C)] pub struct ThreeSlices<'a>(&'a [u32], &'a [u32], &'a [u32]); #[no_mangle] pub fn sum_slices(val: ThreeSlices) -> u32 { let val = val; sum(&val) } #[no_mangle] #[inline(never)] pub fn sum(val: &ThreeSlices) -> u3

                                                                                  LLVMのstack move optimizationの効果をRustで確認する - Qiita
                                                                                • Rustのslotmapやslabを使って双方向連結リスト(っぽい何か)を作る - turgenev’s blog

                                                                                  Rustで双方向連結リストが欲しいと思ったときは、意外と簡単に実装できる代替品が使えるかも?という記事です。 Rustでの連結リスト実装に関しては、何よりもまずIntroduction - Learning Rust With Entirely Too Many Linked Listsという有名な文献があります。この最初のページに、「Linked Listが本当に必要な場面は思ったよりかなり限られているので、まずはVecかVecDequeあたりの使用を検討しろ」ということが書いてあります。 ただそれでも連結リストが必要なときというのはあります。筆者はソフトウェアNAT(こちらの記事で詳しく解説しています)でIPアドレス・ポートのマッピングをタイムアウトの順に並べて管理するために連結リストが欲しくなったのですが、ここではもう少し単純な問題を考えてみましょう。 以下のような状況をプログラムで

                                                                                    Rustのslotmapやslabを使って双方向連結リスト(っぽい何か)を作る - turgenev’s blog