WvStreams is a network programming library in C++. It was constructed over the lifetime of the NetIntegrator mostly by apenwarr but also with tons of help from dcoombs and other members of Net Integration R&D. The version of WvStreams you see on this site is currently maintained by the AlumNit group.

WvStreams aims to be an efficient, secure, easy-to-use, and OS-independent library for doing network applications development, and we think that it has pretty much lived up to those goals. Currently all or parts of it work under Linux, *BSD, Solaris, and MAC OS X. Some parts have been ported to Windows, with a more complete port coming really soon.

Most people who have read WvStreams-based code seem to be very impressed with how readable it makes application programs. It would have been impossible to build WvDial, TunnelVision, Retchmail, and the rest of the programs found on this site as quickly as we did without a good framework library.

Currently, what documentation exists is a bit sporadic. The header files from the source code are fairly well documented, and, for those looking for examples, all of the programs on this site have been developed using this library, so you should be able to get some ideas from them.

Frequently Asked Questions:

  • Where can I get it?

  • Is there a mailing list?

  • How is it licensed?

  • How do I compile WvStreams?

         tar -xzvf wvstreams-4.X.tar.gz
         cd wvstreams-4.X
         ./configure
         make
           (as root:)
         make install
       

    This will install the WvStreams libraries into /usr/local/lib, and the header files into /usr/local/include/wvstreams

  • It says something about "OpenSSL? is missing." when I'm trying to configure WvStreams.

    • WvStreams has a bunch of cryptographic functions in it to create SSL sessions, exchange RSA Keys, and handle some simple X.509 Certificate functions. Since writing our own implementations of everything didn't really appeal to us, we decided that we would simply create easy to use wrappers around the OpenSSL? library. Consequently, in order to compile WvStreams, you need to have the include files and development libraries from OpenSSL? installed.
  • I'm having some other problem building WvStreams.

    • Check out the archives of the WvStreams MailingList (where where all of the WvStreams developers hang out) to see if someone else has had the same problem as you. If that doesn't help, please send a new message to the list and someone will surely be able to help you.