About
-----
Vstr is a string library, it's designed so you can work optimally with
readv()/writev() for input/output. This means that, for instance, you
can readv() data to the end of the string and writev() data from the
beginning of the string without having to allocate or move memory. It
also means that the library is completely happy with data that has
multiple zero bytes in it.
This design constraint means that unlike most string libraries Vstr
doesn't have an internal representation of the string where everything
can be accessed from a single (char *) pointer in C, the internal
representation is of multiple "blocks" or nodes each carrying some of
the data for the string. This model of representing the data also
means that as a string gets bigger the Vstr memory usage only goes up
linearly and has no inherent copying. It also means that the string
can do automatic referencing for mmap() areas of memory,
Other convenience functions are also included, so you can: easily
compare data, search for data and split data from a string into
sections (similar to perl's split function). In a POSIX environment
the short cut functions to call readv/writev are included.
It also includes a portable version of a printf-like function (which
is ISO 9899:1999 compliant, and includes support for i18n parameter
position modifiers). However, as well as being portable, there is a
large extension available called "custom formatters" which allows you
to print any type (Ie. ipv4 addresses or Vstr strings) via. the printf
like function (and this is done in such a way that static format
checkers like gcc will understand what is being done).
Main Changes
------------
. More testing, now at over 99% code coverage.
. One largish bug was found, and regression tests added for it.
. A couple of smaller bugs were also found and fixed.
. A couple of new functions for storing constant data in the
configuration, for use in callbacks or whatever.
. A group allocator for Vstr_ref is now used internally for some operations.
Download URLs
-------------
Overview: http://www.and.org/vstr/
Tutorial: http://www.and.org/vstr/tutorial.html
Design: http://www.and.org/vstr/design.html
String API comparison: http://www.and.org/vstr/comparison.html
Printf comparison: http://www.and.org/vstr/printf_comparison.html
ChangeLog: http://www.and.org/vstr/ChangeLog
Security: http://www.and.org/vstr/security.html
All of the above are included in the tar balls and rpms.
Tar balls
---------
http://www.and.org/vstr/1.0.12/vstr-1.0.12.tar.gz
ftp://ftp.and.org/pub/james/vstr/1.0.12/vstr-1.0.12.tar.gz
http://www.and.org/vstr/1.0.12/vstr-1.0.12.tar.bz2
ftp://ftp.and.org/pub/james/vstr/1.0.12/vstr-1.0.12.tar.bz2
YUM repository
--------------
[and-org-james]
name=And.org James' packages
baseurl=ftp://ftp.and.org/yum/fc$releasever-james
RPMs
----
http://www.and.org/vstr/rpms/
ftp://ftp.and.org/pub/james/vstr/rpms/
PAD description
---------------
http://www.and.org/vstr/vstr_pad.xml
--
James Antill -- james _at_ and.org
Need an efficent and powerful string library for C?
http://www.and.org/vstr/
##########################################################################
# Send submissions for comp.os.linux.announce to: cola _at_ stump.algebra.com #
# PLEASE remember a short description of the software and the LOCATION. #
# This group is archived at http://stump.algebra.com/~cola/ #
##########################################################################