Hacker News

Zig – io_uring ne Grand Central Dispatch std.Io dwumadie ahodoɔ no sii fam

Zig – io_uring ne Grand Central Dispatch std.Io dwumadie ahodoɔ no sii fam Saa nhwehwɛmu yi hwehwɛ io_uring mu, hwehwɛ nea ɛkyerɛ ne nkɛntɛnso a ebetumi aba mu. Nsusuwii Titiriw a Wɔakata So Saa nsɛm yi hwehwɛ: Nnyinasosɛm atitiriw ne...

11 min read Via ziglang.org

Mewayz Team

Editorial Team

Hacker News

Zig nhomakorabea a ɛwɔ gyinapɛn no adu ade titiriw bi ho: native io_uring ne Grand Central Dispatch (GCD) backends ma std.Io aba fam wɔ aban kwan so, de adwumayɛ a ɛkorɔn, platform-native asynchronous I/O aba nnɛyi nhyehyɛe nhyehyɛe kasa a ɛhyɛ bɔ sen biara no mu biako mu. Wɔ developers a wɔresi infrastructure a ɛma awoɔ ntoatoasoɔ a ɛdi hɔ adwumayɛ platforms tumi — te sɛ 207-module operating system a ɛwɔ Mewayz akyi — saa nkɔsoɔ yi kyerɛ berɛ foforɔ a ɛfa backend adwumayɛ ne scalability ho.

Dɛn ne io_uring na Dɛn nti na Ɛho Hia ma Nnɛyi Nnwuma?

Wɔde aba Linux kernel 5.1 mu, io_uring yɛ asynchronous I/O interface a ɛyɛ adwuma yie a ɛsesa sɛdeɛ aplikeshɔn ne dwumadie nhyehyɛeɛ no di nkitaho titire. Amanneɛ kwan so I/O nhwɛsoɔ hyɛ nhyehyɛeɛ ma wɔyɛ ankorankoro nhyehyɛeɛ frɛ ma akenkan anaa kyerɛw dwumadie biara — akwantuo a ne boɔ yɛ round-trips a ɛbɔ adwumayɛ wɔ nsenia mu. io_uring de ring buffer a wɔkyɛ wɔ ɔdefoɔ atenaeɛ ne kernel ntam si yei ananmu, na ɛma aplikeshɔn ahodoɔ no tumi de I/O dwumadie mpempem pii kɔ na wɔwie a wɔmfa sika ketewa bi.

Nkɛntɛnso a mfaso wɔ so no yɛ nwonwa. Wɛb servers, databases, ne SaaS platforms a ɛdi nkitahodi mpempem pii a ɛkɔ so bere koro mu ho dwuma no nya mfaso ntɛm ara fi CPU overhead a wɔatew so ne latency a ɛba fam mu. Wɔ platform a ɛsom dwumadiefoɔ a wɔyɛ nnam 138,000 wɔ module ahodoɔ 207 mu — biara a ɛkanyan fael akenkan, database abisadeɛ, ne ntwamutam abisadeɛ — nsonsonoeɛ a ɛda agyapadeɛ I/O ne io_uring ntam no bɛtumi akyerɛ aseɛ tẽẽ akɔ mmuaeɛ berɛ mu nkɔsoɔ ne infrastructure ka a wɔatew so.

a wɔde ahyɛ mu

"io_uring yɛ akyinnyegyeɛ sɛ ɛyɛ adeɛ a ɛho hia paa a wɔde aka Linux I/O ho wɔ mfeɛ du mu. Ɛnam sɛ ɛyi context-switching overhead a ɛwɔ atetesɛm syscalls so no fi hɔ nti, ɛma user-space programs tumi bɛn raw hardware throughput — game-changer ma application biara a I/O yɛ bottleneck."

na ɛkyerɛ sɛ woayɛ

Ɛbɛyɛ dɛn na Grand Central Dispatch Fata Zig std.Io Asɛm no mu?

Bere a io_uring yɛ Linux-specific no, Apple Grand Central Dispatch (GCD) ayɛ adwuma bere tenten sɛ concurrency ne adwuma-dispatching nhyehyɛe a edi kan wɔ macOS ne iOS so. GCD twetwe thread management kɔ queue-based model mu, ɛma dwumadie nhyehyɛeɛ no tumi yɛ adwuma ho nhyehyɛeɛ yie wɔ CPU cores a ɛwɔ hɔ no so a developers mfa nsa nhwɛ thread pools so.

Ɛdenam akyigyina abien no nyinaa a wɔde si fam wɔ std.Io abstraction a wɔaka abom no ase so no, Zig kuw no anya biribi a ɛyɛ den ankasa: async I/O API soro biako a ɛboaboa ano kɔ native, idiomatic async primitives so wɔ Linux ne Apple platforms nyinaa so. Wei kyerɛ sɛ Zig dwumadie a wɔakyerɛw atia std.Io no ara de io_uring di dwuma wɔ Linux servers so ne GCD wɔ macOS nkɔsoɔ mfiri so — a zero platform-specific branching wɔ application code mu.

Dɛn ne Abakɔsɛm mu Nsɛm a Ɛwɔ Zig Async I/O Akwantuo no Akyi?

Zig kwan a ɛkɔ async asɛm a ɛyɛ den mu no ayɛ nea ɛda nsow sɛ ɛyɛ nea wɔsan yɛ no mpɛn pii. Kasa no mfitiaseɛ nkyerɛaseɛ no bi ne async/await kasamufa a wɔasɔ ahwɛ a akyiri yi wɔayi afiri hɔ berɛ a kuw no san susuu nhyehyɛɛ no ​​ho. Sɛ anka wɔde wɔn ho bɛhyɛ concurrency model pɔtee bi a wɔatow wɔ kasa kasa mmara mu no, Zig core kuw no paw I/O abstraction layer wɔ standard library level — nea ɛda so ara yɛ composable ne executor strategies ahorow.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Saa nyansapɛ yi ne Zig design ethos a ɛtrɛw no hyia: control flow a ahintaw biara nni hɔ, nkyekyɛmu a ɛda adi pefee, ne akwan a ɛhyehyɛ sɛnea wɔahyɛ ho nkɔm. std.Io ntamgyinafoɔ no gyina hɔ ma mfeɛ pii mpɔtam hɔ akyinnyegyeɛ, nhwɛsoɔ, ne wiase ankasa mu nsɛm a wɔde maeɛ no awieeɛ. Landing io_uring ne GCD backends hyɛ nsakraeɛ a ɛfiri sɔhwɛ mu kɔ production-ready ma Zig async ecosystem no agyiraeɛ.

Dɛn ne Nkyerɛkyerɛmu a Ɛyɛ Mfasoɔ a Ɛfa SaaS ne Adwumayɛbea Nsiesiei Ho?

Wɔ akuo a wɔrekyekye anaa wɔresusuw akyi nhyehyɛe ho ama SaaS platform ahorow a wɔagye adan pii no, Zig io_uring asɛm no kura nkyerɛkyerɛmu pɔtee pii:

  • Infrastructure ho ka a wɔatew so: I/O throughput a ɛkɔ soro wɔ server biara mu kyerɛ sɛ mfiri kakraa bi na ɛho hia na wɔde adi adesoa a ɛyɛ pɛ ho dwuma, a ɛka cloud sika a wɔsɛe no tẽẽ.
  • Latency a wotumi hyɛ ho nkɔm wɔ scale so: io_uring batched submission model no ma latency spikes a ɛtaa ba wɔ concurrency a ɛkorɔn ase no yɛ mmerɛw, na ɛma osuahu a ɔde di dwuma no tu mpɔn wɔ module ahorow nyinaa mu wɔ platform bi so.
  • Cross-platform developer tooling: Ɛnam GCD mmoa so no, developers a wɔwɔ macOS so no betumi ayɛ I/O logic a ɛyɛ pɛ wɔ mpɔtam hɔ a ɛde di dwuma wɔ Linux production servers so — atoto nsonsonoeɛ a akyɛ wɔ nokwaredi a wɔsɔ hwɛ mu.
  • Daakye-adanseɛ nhyehyɛeɛ nhyehyɛɛ: Sɛdeɛ io_uring a wɔgye tom no nyin wɔ nnwinnadeɛ a ɛbɛn (databases, proxyes, runtimes) mu no, Zig kurom mmoa no de no si hɔ yie ma ɛne nnɛyi Linux ecosystem a ɛtrɛ no hyehyɛ.
  • Memory ahobanbɔ a nwura a wɔboaboa ano: Zig no wurayɛ nhwɛsoɔ no ne io_uring zero-copy tumi ma buffer management a ɛyi mfomsoɔ akuo a ɛtaa ba wɔ systems-level network code mu no nyinaa bom.

Dakye Nneyɛe Bɛn na Ɛsɛ sɛ Wɔn a Wɔyɛ Nneɛma no Hwɛ Bere a Saa Abɔde a Atwa Yɛn Ho Ahyia Yi Rekɔ so?

Saa akyigyina yi landing yɛ mfiase, ɛnyɛ awiei. Ɛfata sɛ wodi nkɔso pii akyi yiye. Nea edi kan no, Zig ecosystem no da so ara renyin wɔ abstractions a ɛkorɔn ho — HTTP servers, database drivers, ne RPC frameworks a wɔasi wɔ std.Io so no bɛkyerɛ sɛnea kasa no kɔ ntɛmntɛm kɔ production SaaS stacks mu. Nea ɛto so abien, io_uring ankasa kɔ so dannan; nneɛma te sɛ buffers a wɔasiesie, multishot operations, ne kernel-side polling ma adwumayɛ ti foforo a Zig akyi kwan betumi ada no adi nkakrankakra. Nea ɛtɔ so mmiɛnsa, berɛ a WebAssembly runtimes reda WASI I/O interfaces adi kɛseɛ no, Zig abstraction layer no de no si hɔ sɛ ɛde n’ani si saa atwa yɛn ho ahyia no nso so, na ɛma nokwarem no kyerɛw-once-run-anywhere systems code.

Wɔ platform ahorow a ɛde adwumayɛ mu mmɔdenbɔ di kan — te sɛ Mewayz, a ɛbɔ adwumayɛ nhyehyɛe nyinaa so ma ɛyɛ $19–$49/ɔsram nkrataahyɛ — saa nnwuma-gyinabea nkɔso yi yɛ kɛse. Efficiency mfaso biara wɔ system layer no kyerɛ ase kɔ headroom ma features pii, users pii, ne margins a eye.

Nsɛmmisa a Wɔtaa Bisa

So io_uring yɛ ahobammɔ sɛ wɔde bedi dwuma wɔ mmeae a wɔyɛ nneɛma nnɛ?

Yiw. io_uring wɔ hɔ firi Linux kernel 5.1 (2019) na seesei wobu no sɛ ɛyɛ stable ma production use. Nnwuma akɛse a Redis, RocksDB, ne network server ahorow pii a ɛyɛ adwuma yiye ka ho agye atom. Zig dwumadie no di kernel interfaces korɔ no ara akyi na ɛfata ma production workloads wɔ nnɛyi Linux distributions a ɛde kernel 5.6 anaa akyiri yi di dwuma ma feature mmoa a edi mũ.

So ɛhia sɛ mesan kyerɛw Zig koodu a ɛwɔ hɔ dedaw no na mede std.Io akyigyina foforo no adi dwuma?

Ɛho nhia sɛ wɔsan kyerɛw nsɛm foforo a ɛho hia biara. Wɔayɛ std.Io ntamgyinafoɔ no sɛ abstraction layer a ɛyɛ den — application code a wɔakyerɛw atia no bɛnya mfasoɔ afiri io_uring anaa GCD akyigyina a egyina compile botaeɛ so no mu. Mmɔdenbɔ titire a wɔde tu kɔ baabi foforo no fa sɛ wobɛsesa akɔ mprempren Zig adwinnade nkyerɛase a ɛka saa akyi nsɛm yi ho na woasiesie koodu biara a kan no na ɛde platform-specific I/O syscalls di dwuma tẽẽ.

Ɔkwan bɛn so na eyi toto async I/O ho wɔ Rust Tokio anaa Go runtime mu?

Tokio a ɛwɔ Linux so nso de io_uring di dwuma denam tokio-uring crate no so, ɛwom sɛ ɛda so ara yɛ soronko wɔ default Tokio runtime a ɛde epoll di dwuma no ho. Go runtime de n'ankasa scheduler a epoll-based I/O di dwuma. Zig kwan no yɛ soronko wɔ sɛ std.Io yɛ synchronous-feeling wɔ API level — async/await syntax biara nni hɔ — bere a ɛda so ara de kɔ native async primitives wɔ hood no ase. Wei kora akenkan so na ɛkwati "colored function" haw a ɛma async Rust codebases yɛ den.


Sɛ́ ebia woyɛ developer a woresusuw system programming kasa ahorow ho ama wo infrastructure project a edi hɔ no anaasɛ adwuma wura a worehwehwɛ platforms a wɔasi wɔ technology a etu mpɔn, a wotumi sesa so no, nnwinnade te sɛ Zig kwan a wɔfa so yɛ adwuma no da nsakrae a ɛtrɛw a ɛkɔ software design a edi kan wɔ adwumayɛ mu adi. Wɔkyekyere Mewayz wɔ saa nnyinasosɛm koro yi ara so — ɛde adwumayɛ module 207 a wɔaka abom bɛma nnipa bɛboro 138,000 a wɔde di dwuma wɔ ɛka a wɔbɔ wɔ nnwinnade a ɛne no sɛ a wɔbɛboaboa ano mmiako mmiako no fã ketewaa bi. Efi CRM ne analytics so kosi link-in-bio ne adesua a wɔde ma so no, adwuma OS no nyinaa wɔ hɔ a efi ase fi $19/ɔsram. Fi ase sɔ wo sɔhwɛ a wontua hwee wɔ app.mewayz.com na nya osuahu sɛnea nnɛyi, platform nhyehyɛe a etu mpɔn te wɔ nneyɛe mu.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime