Added Zig and Telnet example using Redis server as Telnet server
| Author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-09-16 04:07:51 +0200 |
| Committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-09-16 04:07:51 +0200 |
| Commit | 1c5d09532f18da2a7b6a2a3164380ec76ac11cc1 (patch) |
|
-rw-r--r-- |
shell.nix | 2 | |
-rw-r--r-- |
zig-telnet/Makefile | 11 | |
-rw-r--r-- |
zig-telnet/main.zig | 21 |
3 files changed, 33 insertions, 1 deletions
| diff --git a/shell.nix b/shell.nix | |||
| ... | |||
| 7 | nasm |
7 | nasm |
| 8 | tinycc |
8 | tinycc |
| 9 | clang |
9 | clang |
| 10 | zig |
10 | zig_0_11 |
| 11 | zls |
11 | zls |
| 12 | 12 | ||
| 13 | # Dev libraries and deps. |
13 | # Dev libraries and deps. |
| ... | |||
| diff --git a/zig-telnet/Makefile b/zig-telnet/Makefile | |||
| 1 | default: write read |
||
| 2 | |||
| 3 | write: |
||
| 4 | zig run main.zig |
||
| 5 | |||
| 6 | read: |
||
| 7 | echo -e "Reading value back from Redis server" |
||
| 8 | { echo "GET zig"; sleep 1; } | telnet localhost 6379 |
||
| 9 | |||
| 10 | redis: |
||
| 11 | docker run -p 6379:6379 redis |
||
| diff --git a/zig-telnet/main.zig b/zig-telnet/main.zig | |||
| 1 | const std = @import("std"); |
||
| 2 | |||
| 3 | // NOTE: Start Redis server with either `make redis` which requires |
||
| 4 | // Docker to be installed or provide your own Redis instance. |
||
| 5 | |||
| 6 | pub fn main() !void { |
||
| 7 | const peer = try std.net.Address.parseIp4("127.0.0.1", 6379); |
||
| 8 | const stream = try std.net.tcpConnectToAddress(peer); |
||
| 9 | defer stream.close(); |
||
| 10 | |||
| 11 | std.debug.print("Connecting to Redis server {}\n", .{peer}); |
||
| 12 | |||
| 13 | // https://redis.io/docs/latest/commands/set/ |
||
| 14 | var writer = stream.writer(); |
||
| 15 | const size = try writer.write("SET zig zag\n"); |
||
| 16 | |||
| 17 | std.debug.print("Sending to peer, total written: {d} bytes\n", .{size}); |
||
| 18 | |||
| 19 | // NOTE: Check if the key was created with: |
||
| 20 | // { echo "GET zig"; sleep 1; } | telnet localhost 6379 |
||
| 21 | } |
||