diff --git a/src/libventi/string.c b/src/libventi/string.c
new file mode 100644
index 0000000..9763149
--- /dev/null
+++ b/src/libventi/string.c
@@ -0,0 +1,50 @@
+#include <u.h>
+#include <libc.h>
+#include <venti.h>
+
+int
+vtputstring(Packet *p, char *s)
+{
+	uchar buf[2];
+	int n;
+
+	if(s == nil){
+		werrstr("null string in packet");
+		return -1;
+	}
+	n = strlen(s);
+	if(n > VtMaxStringSize){
+		werrstr("string too long in packet");
+		return -1;
+	}
+	buf[0] = n>>8;
+	buf[1] = n;
+	packetappend(p, buf, 2);
+	packetappend(p, (uchar*)s, n);
+	return 0;
+}
+
+int
+vtgetstring(Packet *p, char **ps)
+{
+	uchar buf[2];
+	int n;
+	char *s;
+
+	if(packetconsume(p, buf, 2) < 0)
+		return -1;
+	n = (buf[0]<<8) + buf[1];
+	if(n > VtMaxStringSize) {
+		werrstr("string too long in packet");
+		return -1;
+	}
+	s = vtmalloc(n+1);
+	if(packetconsume(p, (uchar*)s, n) < 0){
+		vtfree(s);
+		return -1;
+	}
+	s[n] = 0;
+	*ps = s;
+	return 0;
+}
+
