No description
Find a file
2018-08-29 22:47:41 -05:00
docs fixed windows 2018-08-11 19:47:44 -05:00
src improved ergonomics? 2018-08-29 22:47:41 -05:00
tests improved ergonomics? 2018-08-29 22:47:41 -05:00
.cirrus.yml added cirrus ci 2018-08-08 14:34:07 -05:00
.gitignore added docs 2018-08-08 16:22:13 -05:00
LICENSE initial commit 2018-08-08 14:11:04 -05:00
README.md added docs 2018-08-08 16:17:10 -05:00
vecio.nimble fixed windows 2018-08-11 19:47:44 -05:00

vecio.nim

Build Status
vectored io for nim.

usage

just call readv or writev on a seq or array of strings, ptr strings, or seqs of uint8.

import net
import src/vecio

var server = newSocket()
server.setSockOpt(OptReuseAddr, true)
server.bindAddr(Port(3444))
server.listen()

block:
  let
    outgoing = newSocket()
    buf = ["foo", "bar"]
  outgoing.connect("localhost", Port(3444))
  discard outgoing.writev(buf)

var
  incomming = new Socket
  one = newString(2)
  two = newString(4)

# prevent the strings from being copied
one.shallow()
two.shallow()

var buf = [one, two]

server.accept(incomming)
discard incomming.readv(buf)
doAssert(buf == ["fo", "obar"])
server.close()