並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 122件

新着順 人気順

zigの検索結果1 - 40 件 / 122件

  • 【株式会社ZIG】Mechuの個人情報流出の経緯とZIGの隠蔽工作について【流星群プロジェクト】|ゆき

    ①個人情報流出にZIGより早く気付いた経緯 6/10 mechuの話をリスナー友達と共にdiscordにて会話中の出来事 メンテナンス後にrevちゃんのルームが消えていることに気付く。 外部VTuberの参加予定があったもののトラブルが発生し遅れているアナウンスもあった事で面白半分にソースを見てみようという流れになる。 ソースの見方についてですがブラウザ上で右クリックするとページのソースを表示と出てくるのでそれをクリックするだけというごく簡単なものです。 通話メンバーの一人がVTuberのメールアドレスが表示されていることに気付き、さらにpasswordの記載を見つける。 まずいのではと感じたので運営に報告するために他のページのソースも調査する。 管理者用ページがあるはずだという見立てよりURLにadminを追加したところ管理者用ログインページを偶然発見。 管理者用ログインページのソースを

      【株式会社ZIG】Mechuの個人情報流出の経緯とZIGの隠蔽工作について【流星群プロジェクト】|ゆき
    • ZigはCMakeの代替となるか

      既存のプロジェクトで使用しているコンパイラを置き換えるだけで、Zigに付属しているCコンパイラを利用できる。 クロスビルドが標準で可能 上でも述べた通り、Zigは標準でクロスコンパイルが可能である。 Zig libcのTaget一覧 ❯ zig targets | jq ".libc" [ "aarch64_be-linux-gnu", "aarch64_be-linux-musl", "aarch64_be-windows-gnu", "aarch64-linux-gnu", "aarch64-linux-musl", "aarch64-windows-gnu", "aarch64-macos-none", "aarch64-macos-none", "armeb-linux-gnueabi", "armeb-linux-gnueabihf", "armeb-linux-musleabi

        ZigはCMakeの代替となるか
      • なぜ Zig の採用を検討しているのか

        かなり雑に書いてるので、雑に読んでください。 Bun が Zig で開発されていることを知り、そこから Zig を調べてみています。 調べていくと自分が求めていた言語っぽいというのがあり、社外では学生に QUIC や TLS 1.3 を Zig で OSS を開発してもらうお仕事を出したり、社内では実際に採用に向けて調査を進めています。 そもそもの目的自分の会社では Erlang VM を利用した製品をメインに利用しています。ただ Erlang VM 遅いんです。少なくとも暗号処理であれば Rust の方が 2 倍ほど速いです。Erlang VM 自体 JIT を採用したり、いろいろ頑張ってくれているのですが劇的な高速化というのは今すぐには難しいのが現実です。 そこで NIFs (Native Implemented Functions) を使って頑張るという戦略があります。早い話が Er

        • 世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか

          Zigは2015年に登場した新しいオープンソースのプログラミング言語です。Go言語やRust言語のように、C言語の置き換えを目標にしたコンパイラ言語です。その最大の特徴はシンプルであることです。確かに、マクロもプリプロセッサもありませんが、現代的な言語に仕上がっています。最近話題になることが増えてきたので試してみましょう。 ZigのWebサイト Zigとは Zigはアンドリュー・ケリー氏によって2015年に登場した新しいプログラミング言語です。コンパイラ基盤のLLVMを利用しており、幅広いOSに対応した実行ファイルを生成することができます。 Zigはシンプルをモットーとしています。Zigのマニュアルでは、C++やRust、D言語など多くの機能を持つ言語を挙げて、それらとは異なりシンプルであることを名言しています。 そして、その構文は、C言語と似ているのですが、遅延処理のdefer構文や型推

            世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか
          • Learning Zig

            home Learning Zig Welcome to Learning Zig, an introduction to the Zig programming language. This guide aims to make you comfortable with Zig. It assumes prior programming experience, though not in any particular language. Zig is under heavy development and both the Zig language and its standard library are constantly evolving. This guide targets the latest development version of Zig. However, it's

            • Zig で簡単な JSON パーサを書いてみた。

              #include <stdio.h> int main(int argc, char* argv[]) { int i; for (i = 1; i <= 100; i++) { if (i % 15 == 0) puts("FizzBuzz"); else if (i % 15 == 0) puts("FizzBuzz"); else if (i % 3 == 0) puts("Fizz"); else if (i % 5 == 0) puts("Buzz"); else printf("%d\n", i); } return 0; } fn main() { let mut x = 1; while x <= 100 { if x % 15 == 0 { println!("FizzBuzz"); } else if x % 3 == 0 { println!("Fizz"); } e

                Zig で簡単な JSON パーサを書いてみた。
              • Zig 言語のファーストインプレッション

                Bun を読むにあたって、まずZigを抑える必要があると思ったので数時間学習してみた。チュートリアルを一通りやったのと、ちょっと手を動かした程度で、正直エアプの域は出てない。 自分の動機として wasm を吐くのに使う言語をずっと探していて、Rust も悪くないが正直学習コスト高すぎでしんどく、Zig がそれに足るか調査していたという感じ。 この記事を書くにあたっての細かい作業はこちら https://zenn.dev/mizchi/scraps/287b4414da2b29 Zig 言語自体のスタンス まず Zig 言語自体がなぜ D や Rust ではないかはこの記事がわかりやすい https://ziglang.org/learn/why_zig_rust_d_cpp/ 以下 Deepl で訳してちょっと修正したもの nostd 指向 標準ライブラリなしでもファーストクラスでサポート

                  Zig 言語のファーストインプレッション
                • VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に

                  VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に マイクロソフトは、オープンソースで開発しているコードエディタ「Visual Studio Code」(以下、VSCode)の最新版となる2023年9月版(バージョン1.83)で、JavaScriptデバッガがWebAssemblyのデバッグにも対応したことを明らかにしました。 The JavaScript debugger can now debug code compiled into WebAssembly if it includes DWARF debug information. For example, C++ code compiled using Emscripten can be debugged: pic.twitt

                    VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に
                  • ざっくりとしたZigの紹介

                    BunのおかげでZigに注目する人が増えたように感じます。 個人的にZigを使ってる人間として紹介がてら自分のZigに対する印象を書いていきます。 どんな言語か(公式) 「堅牢で最適で再利用可能なソフトウェアを維持するための汎用プログラミング言語」 公式のより詳しい紹介はこちら Cをベースに現代的な機能を追加している Raylibのサンプルコード // raylib.comから引用(いくつかのコメントを削除) #include "raylib.h" int main(void) { const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); SetTargetFPS(60);

                      ざっくりとしたZigの紹介
                    • 2022 年の夏休みに Zig で QUIC を実装してオープンソースとして公開するお手伝い

                      zig_quic.md 2022 年の夏休みに Zig で QUIC を実装してオープンソースとして公開するお手伝い こちらの応募は終了しました、冬も募集予定です。 提供: 株式会社時雨堂 バージョン: 2022.6.0 著者: @voluntas 成果 @so298 6 週間 QUIC クライアント shiguredo/quic-client-zig @magurotuna 6 週間 QUIC サーバー shiguredo/quic-server-zig @naoki9911 6 週間 TLS 1.3 クライアント/サーバー shiguredo/tls13-zig 目的 夏休み学生向けの OSS スポンサーくらいに考えてもらえれば Zig がとても良い言語だと感じているが、学ぶ余裕はないので代わりに学んで教えて欲しい QUIC は今後インターネットにおいてとても重要な技術となるため学生の

                        2022 年の夏休みに Zig で QUIC を実装してオープンソースとして公開するお手伝い
                      • オープンソースプログラミング言語zigまとめ - Qiita

                        WebAssemblyのモジュール記述のためのプログラミング言語を調べていると、比較的新しいオープンソースのプログラミング言語zigがWebAssemblyモジュールを書くのに適している感じだったので、ソースコードを書いて動かしながら調べたことについて、コードに出ている順で並べています。 この文章中で用いているソースコードはmacOSやlinux上でビルド可能な状態で以下のURLにおいてあります: https://gist.github.com/bellbind/3c52ea6e506656701c9b7ff00a8599fa Qiitaは現時点でzigコードのシンタックスハイライトに未対応であり視認性がよくないですが、githubではzigコードでもシンタックスハイライトされます。 0. プログラミング言語zigについて オープンソースのプログラミング言語zigは、以下のURLで公開され

                          オープンソースプログラミング言語zigまとめ - Qiita
                        • 「ZigはCよりも速いです。」をVector/SIMD最適化で検証する

                          「パフォーマンスについて言えば、ZigはCよりも速いです。」 この一文は Zig 言語の公式サイトの詳細な概要に実際に書いてある文章です。 その理由としていくつか挙げた上で最後にちらっと「Zig は SIMD ベクトル型を直接公開しており、移植性の高いベクトル化コードを簡単に記述することができます。」と書いてあります。今回の記事では画像処理っぽいお題を使って実際に SIMD 最適化される様子を検証してみます。 ベンチマーク環境 OS: Ubuntu20.04 on WSL2 on Windows11 CPU: AMD Ryzen 9 5900X 12-Core Processor お題 一般的な画像データ構造の表現である、幅×高さ×4(RGBA)の長さを持つ8bit整数の配列を受け取り、in-placeでRGBの値を 10 加算して明るくするという関数を考えます。Aの値は元のままとします。

                            「ZigはCよりも速いです。」をVector/SIMD最適化で検証する
                          • Zigで簡単クロスコンパイル 2022 - k0kubun's blog

                            僕は以下の3つのツールを複数プラットフォーム向けにクロスコンパイルしてバイナリ配布しており、以下のように全て異なる言語で開発している。 Go: sqldef Rust: xremap mruby: mitamae クロスコンパイルに苦労している話をするとZigを使ってみたらいいんじゃないかと言われることがあり、周りでもZigが何となく流行り始めた気がするので、これらのツールに実際自分で使ってみてどうだったかという事例を紹介したい。 Zigとは Zigはそもそもプログラミング言語なのだが、C/C++とのinteropがやりやすい言語なようで、おそらくそれに必要でLLVMベースのC/C++ツールチェインが同梱されていて、しかもそれをDrop-In Replacement for GCC/Clangとして売りにしている。 僕はZig言語そのものにはそれほど興味はないのだが、クロスコンパイラとして

                              Zigで簡単クロスコンパイル 2022 - k0kubun's blog
                            • 5分でざっと理解するZig言語

                              Zig言語の話をするときに、初めての人にざっと読んでもらうためのページ。 Zig言語とは 静的型付きのコンパイル言語。C言語と同じ立ち位置。 本家 ziglang.org のoverview 日本語 Wikipedia Wikipedia 英語版 ドキュメント 標準ライブラリのリファレンス 現在の状況 まだ開発中で正式リリースには至っていない。なのでまだ破壊的変更はあり得る。 記事を書いた時点の安定版タグは0.10.0。 公式なパッケージマネージャはまだない。[1](非公式なものは複数存在する) 私が考えたキャッチコピー 「C言語が誕生したのは1972年。Zig言語はそれを2020年代の知見で再構成するもの。50年分の進化!!」 "C but with the problems fixed" 原作者 Andrew Kelly 特徴 ヘッダファイルが無い。プリプロセッサも無い。例外も無い。ガ

                                5分でざっと理解するZig言語
                              • Zigソフトウェア財団とZenプログラミング言語に関する声明 ⚡ Zig Programming Language

                                Original English version available below. We are thankful to 株式会社HYPERIA and all the members of the Zig community that helped us with the Japanese translation. Zigソフトウェア財団とZenプログラミング言語に関する声明Zigソフトウェア財団は、Zigの開発者アンドリュー・ケリーによって創設された501(c)(3)非営利組織です。本財団はZigプログラミング言語開発のサポートと優れたグローバルコミュニティの育成を目的としています。 対してZenはコネクトフリー社によって保守されているZigのクローズドソースフォークです。コネクトフリー社は最近Zenコンパイラのためのライセンスモデルを発表し、ソフトウェア開発者は自分で作成したコードの

                                • “しょうもないうっかり”を許さない、静的型付けの言語 コーディングミスを未然に防ぐ「Zig言語」の仕組みとは

                                  Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。小林哲之氏は、静的型付きコンパイル言語、Zigについて発表しました。 「C言語であった問題をとにかく解決する」を目標に掲げるZig言語 小林哲之氏(以下、小林):それでは、始めます。tetsu_kobaと申します。今日はZigの話をしたいと思います。 Zig言語は、けっこう新しい言語なので、初めて聞く方も多いかと思います。「5分でざっと理解するZig言語」というページを作っておいたので、こちらをご覧になってください。 ところでみなさん、解決まで何時間もかかったバグの原因が、実は数秒で直せるような、しょうもないうっかりコーディングミスだったという経験はありませんか? 私は何度もあります。 バグの原因が、しょうもないうっかりコーディングミスだったと

                                    “しょうもないうっかり”を許さない、静的型付けの言語 コーディングミスを未然に防ぐ「Zig言語」の仕組みとは
                                  • Zig言語のドキュメントを見て「なるほど!」と思ったところ

                                    前回の続き。 ちょっとZig言語が面白そうです。まだあまりzigでコードは書いていないのですが、ドキュメントやソースコードをながめて思ったことを書き散らかしてみます。 (他の人がすでに書いていることはなるべく書かない) オブジェクト指向でなくてデータ指向 C言語に後にC言語っぽい文法の言語はたくさん出てきました。C++, Java, C#, Go, Rustなど。 C++やJavaはオブジェクト指向の考え方を取り込んだもので、GoやRustはいきすぎたオブジェクト指向を反省して、interface とか trait とか良いところだけを抽出した感じになっています。(個人の感想です) Zigには純粋にC言語からの改善をしていて、オブジェクト指向の香りがあまりしません。 むしろ「データ指向設計」(Data-Oriented Design)が意識されているらしいです。 紹介してもらったこの動画が

                                      Zig言語のドキュメントを見て「なるほど!」と思ったところ
                                    • Zig の文書読んで所感を記す - Qiita

                                      これは何? Zig を学ぼうと 公式文書 (0.91時点) を読んでいるんだけど、読みながら思ったことを記していく。 続編は Zig の文書読んで所感を記す #2 へ。 その前に Zig への言及が最近多いなぁ、でもシンプルな言語だって言うしまあどうでもいいかなぁ、ぐらいの気持ちでいたんだけど、ZigはCMakeの代替となるか を読んで、俄然興味が湧いてきて、じゃあ読んでみるか、と思った。 数値 i32 とか u16 のような名前で型が提供されている。 整数は 128bit まである。そればかりか、 3bit とか 53bit のような中途半端な幅の整数も使える模様。面白い。 さらに。何に使うのかわかってないけど、 i0 u0 のようなゼロビットの整数もある。 ちなみに0ビット整数には 0 が代入できる。 u1 は、 0 または 1。 i1 は、 0 または -1 が代入可能。 浮動小数点

                                        Zig の文書読んで所感を記す - Qiita
                                      • Zigについてのメモ

                                        入門した後のレベルぐらい向けのメモ

                                          Zigについてのメモ
                                        • ZigでWriting an OS in 1,000 Linesをやる

                                          ZigでWriting an OS in 1,000 Linesをやる #2023-11-21 自作 OS で学ぶマイクロカーネルの設計と実装(通称エナガ本)の補足資料として公開されているWriting an OS in 1,000 Linesを、できるだけZigでやってみることにした。 目次成果物 #repositoryは以下。 さいしょに #エナガ本は一通り読んでいたのだが、機能に対していくつかのOSの実装を眺める。という構成になっており、個人的には「同じような難易度でRV32を対象に 0->1 でシンプルなOSを作る書籍があるといいなあ」と思いながら読んでいたのだが、まさに欲していたものが公開されたので大喜びで実装を開始した。 自分はそのまま写経してしまうと頭に入らないため、異なる言語で書いてみたり、何らかの制約を課して実施することが多い。今回はZigで書いてみることにした。 概ね問

                                            ZigでWriting an OS in 1,000 Linesをやる
                                          • [全編無料] 他言語習得者がとりあえず使えるようになるZig

                                            公式ドキュメントを私的に噛み砕きつつ、いくつかのコラムを添えて、Zigに入門する本です。 この本を読めばZigの機能を網羅できるわけではありませんが、取っ掛かりがつかめる様になると思います。 なお、未完成の章があったり、情報が書き加えられる可能性があります。

                                              [全編無料] 他言語習得者がとりあえず使えるようになるZig
                                            • Zigで書いたコマンドラインアプリケーションにperfを使ってみた

                                              はじめに Zigで書いたコマンドラインアプリケーションのボトルネック調査にperfを使ってみたメモです。 なお、私は今回初めてperfを使ったレベルで全然詳しくないので、間違いや改善点があればぜひご指摘ください。 環境は Ubuntu 22.04 LTS です。

                                                Zigで書いたコマンドラインアプリケーションにperfを使ってみた
                                              • Raspberry Pi PicoでLチカをZigでやってみた(そしてあまりのバイナリサイズの小ささに驚きを隠せない)

                                                はじめに 最近Raspberry Pi Picoを買いました。 そこで、ZigでLチカする手順を書いておきます。 PCとラズパイを接続する ラズパイ上にBOOTSELがついているので、これを押しながらUSB接続します。 すると、ストレージとして認識されます。 ここにuf2ファイルをコピーすることで、プログラムを実行することができます。 MicroZigを使う MicroZigは組み込みにZigを使用するための仕組みを提供しています。 このプロジェクトはZigEmbeddedGroupというコミュニティによってメンテ、開発が行われています。 今回はこのコミュニティが提供している以下の二つのレポジトリを使います。 ZigEmbeddedGroup/rp2040 - ラズパイPicoに最適化されたMicroZig ZigEmbeddedGroup/uf2 - elfからUF2ファイルを生成してく

                                                  Raspberry Pi PicoでLチカをZigでやってみた(そしてあまりのバイナリサイズの小ささに驚きを隠せない)
                                                • Zig言語の一風変わった算術演算子

                                                  最近ホットな話題に便乗して 一部で注目を集めはじめたプログラミング言語Zigの言語仕様を眺めていたところ、他のプログラミング言語では見かけない一風変わった算術演算子が提供されるようです。 足し算3種盛 いわゆる「足し算」を行う算術加算について、Zig言語では 3種類の演算子 が提供されます。 +: 通常の算術加算。結果が表現範囲を超える場合、プログラムは未定義動作となる。ビルドモードによってはエラーを報告してプログラム停止する。 +%: 循環(Wrapping)加算。結果が表現範囲を超える場合、値を2の補数表現とみなして下位ビットを代入する。 +|: 飽和(Saturating)加算。結果が表現範囲を超える場合、その整数型の最大値を代入する。 例えば8bit符号無し整数型(u8)/値域[0, 255]における足し算では、それぞれ次の演算結果が得られます。 足し算以外の算術演算に対しても同様

                                                    Zig言語の一風変わった算術演算子
                                                  • Using Zig in our incremental Turborepo migration from Go to Rust – Vercel

                                                    Using Zig in our incremental Turborepo migration from Go to RustLearn how we're cross-compiling a Rust-Go-Rust sandwich to six platforms. We’ve been porting Turborepo, the high-performance build system for JavaScript and TypeScript, from Go to Rust. We talked about how we started the porting process, so now let’s talk about how we began porting our two main commands: run and prune. Since last time

                                                      Using Zig in our incremental Turborepo migration from Go to Rust – Vercel
                                                    • GitHub - gvcgo/version-manager: 🔥🔥🔥 A general version manager for multiple sdks, such as Java, Go, Node.js, Deno, Bun, .Net, Python, PyPy, PHP, Rust, Kotlin, Scala, Groovy, Flutter, Julia, Zig, V, Typst, Android SDKs. A much better choice than vfox, fn

                                                      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 - gvcgo/version-manager: 🔥🔥🔥 A general version manager for multiple sdks, such as Java, Go, Node.js, Deno, Bun, .Net, Python, PyPy, PHP, Rust, Kotlin, Scala, Groovy, Flutter, Julia, Zig, V, Typst, Android SDKs. A much better choice than vfox, fn
                                                      • ZigでRay Tracing in One Weekendをやってみた

                                                        はじめに ここ数週間でホットな言語、Zigを触っている。 何か作りたいなと思っていたが、以前からやってみたかったRay Tracing in One Weekend (週末レイトレーシング)をやってみることにした。 最終的に生成される画像。うっとりする 所感 本文はC++で書かれているが、クラス、継承、演算子オーバーロード等の概念はZigにはないため適宜工夫する必要があった。 また、筆者が普段(型の緩めな)PythonやJSを主に使っているため、終始コンパイラに叱られっぱなしだった[1]。 面白い/気になった点 RustやGo、TS等の近代静的型付言語では常識なのかもしれないが、個人的に新鮮だった機能や気になった点をここに列挙していく。 コンパイル時にのみ実行されるコード zigではcomptimeというマーカを付けることでコンパイル時に評価されるコードを書くことができる。 型情報や定数な

                                                          ZigでRay Tracing in One Weekendをやってみた
                                                        • `zig cc`: a Powerful Drop-In Replacement for GCC/Clang - Andrew Kelley

                                                          `zig cc`: a Powerful Drop-In Replacement for GCC/Clang If you have heard of Zig before, you may know it as a promising new programming language which is ambitiously trying to overthrow C as the de-facto systems language. But did you know that it also can straight up compile C code? This has been possible for a while, and you can see some examples of this on the home page. What's new is that the zi

                                                          • Goodbye to the C++ Implementation of Zig ⚡ Zig Programming Language

                                                            Goodbye to the C++ Implementation of ZigHow we used WebAssembly to annihilate 80,000 lines of legacy codeAuthor: Andrew Kelley It’s funny - I have shared this story a handful of times with friends of mine who are qualified, competent software engineers, and each time the response was confusion about why any of this would be necessary or even remotely helpful. WebAssembly?! After ten minutes of puz

                                                            • ZigでISUCON 12 の予選をCGOクロスコンパイルする - ぷらすのブログ

                                                              A recent post on the front page of HN made a comparison between different SQLite packages for Go.... 今回は、M1 Mac で Linux AMD64 用のバイナリを作ってみます。 以下のコマンドでコンパイルできます。 $ brew install zig $ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC="zig cc -target x86_64-linux" CXX="zig c++ -target x86_64-linux" make isuports Go では CC や CXX を使って、CGO コンパイルで使う C・C++ コンパイラを指定できます。 Zig は C や C++コンパイラとして使うこともできるため、環境変数に zig コマンド

                                                                ZigでISUCON 12 の予選をCGOクロスコンパイルする - ぷらすのブログ
                                                              • ZigのOpenCVライブラリ「zigcv」を作っている

                                                                はじめに 以前、Zig の Tensorflow Lite のライブラリを使って遊ぶ記事を書いた。 この記事内では、静止画の処理を行うために、STB ライブラリを用いた。 こうなると次は動画の処理を行いたくなるものだ。 ... ならば OpenCV を Zig から使えるようにしようではないか。 OpenCV の C バインディングを作る OpenCV は C++で書かれているので、Zig から関数を呼び出すには C バインディングを作る必要がある。 1から OpenCV の C バインディングを作るのは大変なので、 今回は同じ手法で C バインディングを実装して呼び出している gocv のコードを利用させていただくことにした。 これで、工数の半分以上が省けることになる。 Zig バインディングを作る この記事の執筆中ではまだ完成はしていない。 しかし、Web カメラの画像を取得して文字や

                                                                  ZigのOpenCVライブラリ「zigcv」を作っている
                                                                • Running Zig with WASI on Cloudflare Workers

                                                                  This post is also available in 简体中文 and 繁體中文. After the recent announcement regarding WASI support in Workers, I decided to see what it would take to get code written in Zig to run as a Worker, and it turned out to be trivial. This post documents the process I followed as a new user of Zig. It’s so exciting to see how Cloudflare Workers is a polyglot platform allowing you to write programs in the

                                                                    Running Zig with WASI on Cloudflare Workers
                                                                  • Will Hare replace C? Or Rust? Or Zig? Or anything else?

                                                                    Will Hare replace C? Or Rust? Or Zig? Or anything else? May 2, 2022 by Drew DeVault Nope. If the short answer leaves you wanting, keep reading. I must admit that this sentence from the Hare announcement may have caused some confusion: Hare is most similar to C, and almost all programs written in C can also be written in Hare. This is especially true in the context of the rising and competing compl

                                                                      Will Hare replace C? Or Rust? Or Zig? Or anything else?
                                                                    • GoのWasmランタイム上でZigで作ったWasmモジュールを動かす - knqyf263's blog

                                                                      Zigのコミッタの方から有益なフィードバックを頂いたり、Wasmランタイムのメンテナからコメントしてもらったり、Twitterでプロ開発者に助けてもらったり、と良い話が多かったのでそのへんの話も含めつつメモとして残しておきます。 最初に断っておきますがWasmにもZigにも特に詳しくないです。 概要 実装 GoのWasmランタイム TinyGoのExample ランタイムの初期化 関数の実行 別の渡し方 Zigの実装 malloc free ptrToString stringToPtr 呼び出し側 サンプル まとめ 概要 自分の開発しているOSSでWebAssemblyによるプラグイン機能に対応したのですが*1、Wasmは仕様が小さく関数の引数や戻り値もi32/i64/f32/f64だけで頑張るみたいな世界なので直接ユーザに生のWasm用コードを書いてもらうのは利便性の面で厳しいです。*

                                                                        GoのWasmランタイム上でZigで作ったWasmモジュールを動かす - knqyf263's blog
                                                                      • CからZigに書き直して激遅になったと思ったら最適化オプションの変更で改善した話

                                                                        メモとして残します。 MJPEGを入力してJPEGに切り出すプログラム ChatGPT-4 に作らせました。 USBカメラから入力された生のmjpegの映像データを標準入力から受けて、jpegの静止画に切り出してファイルに保存するプログラムをC言語で書いてください。書き出すファイル名はout%03d.jpg という感じでフレーム番号を含めてください。ソースコード内のコメントは英語で書いてください。 最初のものはffmpegやらたくさん外部のライブラリに依存するコードを出してきたので、もっとシンプルなやつにしてくれとお願いしました。できたものはこれ。[1] #include <stdio.h> #include <fcntl.h> #include <unistd.h> #define BUF_SIZE 1024 #define OUTPUT_FILENAME_PATTERN "out%03

                                                                          CからZigに書き直して激遅になったと思ったら最適化オプションの変更で改善した話
                                                                        • When Zig is safer and faster than Rust

                                                                          3/7/2023 When Zig is safer and faster than Rust There are endless debates online about Rust vs. Zig, this post explores a side of the argument I don't think is mentioned enough. Intro / TLDRλ I was intrigued to learn that the Roc language rewrote their standard library from Rust to Zig. What made Zig the better option? They wrote that they were using a lot of unsafe Rust and it was getting in thei

                                                                          • Denoで困ったときはZigで何とかなるかもしれない

                                                                            サードパーティライブラリが無いよ問題 いきなりネガティブな話で申し訳ございません。愚痴みたいなものです。本題ではありませんので読み飛ばしていただいて問題ありません。 Denoユーザーの1人としての個人的な印象として、Denoの勢いは2023年に入った頃から低迷しているように感じます。2022年末からnpm対応によってNode.jsの資産を使えるようになったにも関わらずです。実際のユーザー数はDenoチームではないので分かりませんが、登場から数年経って真新しさも無くなったので、どんなサービスにもありがちなことなのかなと思います。 ありがちとはいえ、ただ低迷しているだけではありません。ここからNode.jsを超えるのはなかなか難しいです。なぜならnpm対応というのは、明示的にNode.jsに対して「生き残っていい」それどころか「あなたが正しい」と宣言してしまったようなものです。Node.jsの

                                                                              Denoで困ったときはZigで何とかなるかもしれない
                                                                            • Zigのビットシフト演算がちょっと面白い - その手の平は尻もつかめるさ

                                                                              なんとなくZigを触っているのですが、ビットシフト演算が独特の挙動で面白かったです。 const n: u8 = 0b00000001; const shifted: u8 = n << 1; std.debug.print("{b}\n", .{shifted}); // => 0b00000010 これは直感的なコードでしょう。n が1バイト左にシフトしています。 さて以下のコードはどうでしょうか。 const n: u8 = 0b00000001; const shifted: u8 = n << 8; std.debug.print("{b}\n", .{shifted}); // expects 0, but... このコードは ./main.zig:5:30: error: integer value 8 cannot be coerced to type 'u3' const

                                                                                Zigのビットシフト演算がちょっと面白い - その手の平は尻もつかめるさ
                                                                              • GitHub - zigcc/zig-cookbook: Simple Zig programs that demonstrate good practices to accomplish common programming tasks.

                                                                                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 - zigcc/zig-cookbook: Simple Zig programs that demonstrate good practices to accomplish common programming tasks.
                                                                                • Zigでコンテナランタイム作ってみた

                                                                                  第55回情報科学若手の会での登壇資料です。 登壇者:井上紘太朗

                                                                                    Zigでコンテナランタイム作ってみた