Commit graph

73 commits

Author SHA1 Message Date
Andrew Kelley
8d03ec6766 std.Io.net: implement receiving connectionless messages 2025-10-02 16:30:59 -07:00
Andrew Kelley
96cf75977b std.Io: implement netSend 2025-10-02 16:30:59 -07:00
Andrew Kelley
47f18ee6a0 std.Io.net: make netSend support multiple messages
this lowers to sendmmsg on linux, and means Io.Group is no longer
needed, resulting in a more efficient implementation.
2025-10-02 16:30:59 -07:00
Andrew Kelley
46e5068e48 std.Io.net.HostName: finish implementing DNS lookup 2025-10-02 16:30:59 -07:00
Andrew Kelley
a37c0bca22 std.Io.Threaded: implement Group.cancel 2025-10-02 16:30:59 -07:00
Andrew Kelley
3c9fdf810f std.Io: implement Group API 2025-10-02 16:30:59 -07:00
Andrew Kelley
96dc44b5ea std.Io: rename asyncConcurrent to concurrent 2025-10-02 16:30:59 -07:00
Andrew Kelley
79b807bf1c Io.net: implement more networking
the next task is now implementing Io.Group
2025-10-02 16:30:59 -07:00
Andrew Kelley
3e8cc9c496 std.Io.net: progress towards DNS resolution 2025-10-02 16:30:59 -07:00
Andrew Kelley
888bf35ab0 Io.net: use resolve for IPv6
/etc/resolv.conf might have IPv6 addresses with scope in it, so this is
needed.
2025-10-02 16:30:59 -07:00
Andrew Kelley
0f2427c5d2 std.Io: rename ThreadPool to Threaded 2025-10-02 16:30:59 -07:00
Andrew Kelley
43eea7beec std.Io: extract Dir to separate file 2025-10-02 16:30:59 -07:00
Andrew Kelley
e34bb9a413 Io.net: partial implementation of dns lookup 2025-10-02 16:30:59 -07:00
Andrew Kelley
676f1b492e std: start moving fs.File to Io 2025-10-02 16:30:59 -07:00
Andrew Kelley
bdf463bee2 std.Io.net: partially implement HostName.lookup 2025-10-02 16:30:59 -07:00
Andrew Kelley
07cc4077fb add some networking 2025-10-02 16:30:59 -07:00
Andrew Kelley
2746239fd3 std.Io: delete asyncParallel 2025-10-02 16:30:59 -07:00
Andrew Kelley
25b2954c0c std.Io: fix error handling and asyncParallel docs 2025-10-02 16:30:59 -07:00
Andrew Kelley
9fd1ecb348 std.Io: add asyncConcurrent and asyncParallel 2025-10-02 16:30:59 -07:00
Andrew Kelley
806214797a std.Io: rename go to asyncDetached
it's a better name because it's more descriptive, not a reference, and
hints that it is less common than async
2025-10-02 16:30:59 -07:00
Andrew Kelley
9a62dc4d89 revert std.Thread.Pool for now
and move the Io impl to a separate file
2025-10-02 16:30:59 -07:00
Andrew Kelley
0c0ea7844e Io: update for new linked list API 2025-10-02 16:30:59 -07:00
Andrew Kelley
61c38d77c6 std.Io: remove @ptrCast workarounds
thanks to d53cc5e5b2
2025-10-02 16:30:59 -07:00
Andrew Kelley
4a3ef0f779 introduce Io.select and implement it in thread pool 2025-10-02 16:30:59 -07:00
Jacob Young
6ba65ca972 Io.Condition: implement full API 2025-10-02 16:30:59 -07:00
Andrew Kelley
e5b2df0c9b std.Io.Condition: change primitive to support only one
and no timer
2025-10-02 16:30:59 -07:00
Andrew Kelley
663611773c EventLoop: implement detached async
data races on deinit tho
2025-10-02 16:30:59 -07:00
Jacob Young
0f083f24ff Io: implement faster mutex 2025-10-02 16:30:59 -07:00
Andrew Kelley
0086d315f5 std.Io: add detached async 2025-10-02 16:30:59 -07:00
Andrew Kelley
5508b4c887 implement Mutex, Condition, and Queue 2025-10-02 16:30:59 -07:00
Jacob Young
b01244d225 Io: implement sleep and fix cancel bugs 2025-10-02 16:30:59 -07:00
Jacob Young
b37126bc08 EventLoop: implement thread-local queues and cancellation 2025-10-02 16:30:59 -07:00
Andrew Kelley
c278830592 std.Io: introduce cancellation 2025-10-02 16:30:59 -07:00
Andrew Kelley
79e278f6a2 better API for Io.async 2025-10-02 16:30:59 -07:00
Andrew Kelley
be68b28b9b start adding fs functions to std.Io 2025-10-02 16:30:59 -07:00
Andrew Kelley
acd02e978b fix context passing in threaded Io impl 2025-10-02 16:30:59 -07:00
Andrew Kelley
1e09d7f499 demo: single-threaded green threads implementation 2025-10-02 16:30:59 -07:00
Andrew Kelley
63c554d5a7 introduce std.Io interface
which is planned to have all I/O operations in the interface, but for
now has only async and await.
2025-10-02 16:30:59 -07:00
Andrew Kelley
79f267f6b9 std.Io: delete GenericReader
and delete deprecated alias std.io
2025-08-29 17:14:26 -07:00
Andrew Kelley
558bea2a76 std.Io: delete CountingReader 2025-08-29 11:11:59 -07:00
Andrew Kelley
9860dd475a std: delete most remaining uses of GenericWriter 2025-08-28 18:30:57 -07:00
Andrew Kelley
57dbc9e74a std.Io: delete GenericWriter 2025-08-28 18:30:57 -07:00
Andrew Kelley
a0f9a5e78d std: more reliable HTTP and TLS networking
* std.Io.Reader: fix confused semantics of rebase. Before it was
  ambiguous whether it was supposed to be based on end or seek. Now it
  is clearly based on seek, with an added assertion for clarity.

* std.crypto.tls.Client: fix panic due to not enough buffer size
  available. Also, avoid unnecessary rebasing.

* std.http.Reader: introduce max_head_len to limit HTTP header length.
  This prevents crash in underlying reader which may require a minimum
  buffer length.

* std.http.Client: choose better buffer sizes for streams and TLS
  client. Crucially, the buffer shared by HTTP reader and TLS client
  needs to be big enough for all http headers *and* the max TLS record
  size. Bump HTTP header size default from 4K to 8K.

fixes #24872

I have noticed however that there are still fetch problems
2025-08-16 00:16:15 -07:00
Andrew Kelley
749f10af49 std.ArrayList: make unmanaged the default 2025-08-11 15:52:49 -07:00
Andrew Kelley
045bb14897 zig std: fix build failures 2025-08-08 17:17:53 -07:00
Andrew Kelley
8c9dfcbd0f std.Io: remove BufferedWriter 2025-08-08 17:17:53 -07:00
Andrew Kelley
94dd28b7f7 std.Io: delete CountingWriter 2025-08-07 22:26:42 -07:00
Andrew Kelley
262bfc5826 std.Io: delete LimitedReader 2025-08-07 10:04:52 -07:00
Andrew Kelley
e061445fc2 std.Io: delete BufferedReader 2025-08-07 10:04:52 -07:00
Matthew Lugg
fd9cfc39f5
Merge pull request #24199 from Justus2308/24106-fmt-casts
zig fmt: canonicalize nested cast builtin order
2025-08-07 10:55:03 +01:00