Vstr 1.0.11 (string library in C)
From: James Antill (james_at_and.org)
Date: 12/15/03
- Previous message: Mark Suter: "[HUMBUG] Next Meeting - 20th December 2003"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Mon, 15 Dec 2003 09:29:12 CST
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
------------
. The output using vstr_sc_fmt_add_ptr() was fixed, as the wrong type
was used for vstr_sc_fmt_cb_beg().
. vstr_export_chr() was changed to make it easier to optimize for
GCC.
. Custom formatters now accept %d instead of the field width or
precision in the static format checkers compat.
. Build fixes were made for Cygwin, 64-bit architectures, and ICC.
. Debug mode no longer raises false errors when changing certain
configuration values to be externally allocated.
. Added gmp example to install.
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.11/vstr-1.0.11.tar.gz
ftp://ftp.and.org/pub/james/vstr/1.0.11/vstr-1.0.11.tar.gz
http://www.and.org/vstr/1.0.11/vstr-1.0.11.tar.bz2
ftp://ftp.and.org/pub/james/vstr/1.0.11/vstr-1.0.11.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@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@stump.algebra.com # # PLEASE remember a short description of the software and the LOCATION. # # This group is archived at http://stump.algebra.com/~cola/ # ##########################################################################
- Previous message: Mark Suter: "[HUMBUG] Next Meeting - 20th December 2003"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|