aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell.nix2
-rw-r--r--zig-telnet/Makefile11
-rw-r--r--zig-telnet/main.zig21
3 files changed, 33 insertions, 1 deletions
diff --git a/shell.nix b/shell.nix
index 51f2e15..1c43449 100644
--- a/shell.nix
+++ b/shell.nix
@@ -7,7 +7,7 @@
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
new file mode 100644
index 0000000..346280d
--- /dev/null
+++ b/zig-telnet/Makefile
@@ -0,0 +1,11 @@
1default: write read
2
3write:
4 zig run main.zig
5
6read:
7 echo -e "Reading value back from Redis server"
8 { echo "GET zig"; sleep 1; } | telnet localhost 6379
9
10redis:
11 docker run -p 6379:6379 redis
diff --git a/zig-telnet/main.zig b/zig-telnet/main.zig
new file mode 100644
index 0000000..0f396b9
--- /dev/null
+++ b/zig-telnet/main.zig
@@ -0,0 +1,21 @@
1const 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
6pub 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}