summaryrefslogtreecommitdiff
path: root/zig-telnet
diff options
context:
space:
mode:
Diffstat (limited to 'zig-telnet')
-rw-r--r--zig-telnet/Makefile11
-rw-r--r--zig-telnet/main.zig21
2 files changed, 32 insertions, 0 deletions
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 @@
+default: write read
+
+write:
+ zig run main.zig
+
+read:
+ echo -e "Reading value back from Redis server"
+ { echo "GET zig"; sleep 1; } | telnet localhost 6379
+
+redis:
+ 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 @@
+const std = @import("std");
+
+// NOTE: Start Redis server with either `make redis` which requires
+// Docker to be installed or provide your own Redis instance.
+
+pub fn main() !void {
+ const peer = try std.net.Address.parseIp4("127.0.0.1", 6379);
+ const stream = try std.net.tcpConnectToAddress(peer);
+ defer stream.close();
+
+ std.debug.print("Connecting to Redis server {}\n", .{peer});
+
+ // https://redis.io/docs/latest/commands/set/
+ var writer = stream.writer();
+ const size = try writer.write("SET zig zag\n");
+
+ std.debug.print("Sending to peer, total written: {d} bytes\n", .{size});
+
+ // NOTE: Check if the key was created with:
+ // { echo "GET zig"; sleep 1; } | telnet localhost 6379
+}