[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cola:09604] Vstr 1.0.14 (string library in C)


 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
 ------------

. Some corner case bugs found in applications
       Unit testing is still at 100% code coverage.
. In the vstr_sc_*file* functions use O_NONBLOCK on open() to stop
  hangs on FIFOs, also repeat read() request until all file is read or
  encounter an error.
. Encoded more characters in vstr_conv_encode_uri().

. The HTTPD example application is now (I believe) compliant with
HTTP/1.1. I believe it to be secure from remote attacks (although
that doesn't include DOS attacks). It also has code to stop response
splitting.
 It should be very fast (uses epoll on Linux, can have one proc. per
CPU, and some other API tricks -- plus the Vstr library :).
 It also has a feature to make gzip content-encoding very easy to use,
which can save a lot of bandwidth.
 There is also a perl script to convert the log files to apache
combined format.

. Build fixes for non-Linux platforms.


 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.14/vstr-1.0.14.tar.gz
ftp://ftp.and.org/pub/james/vstr/1.0.14/vstr-1.0.14.tar.gz
http://www.and.org/vstr/1.0.14/vstr-1.0.14.tar.bz2
ftp://ftp.and.org/pub/james/vstr/1.0.14/vstr-1.0.14.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@xxxxxxx
Need an efficent and powerful string library for C?
http://www.and.org/vstr/

##########################################################################
# Send submissions for comp.os.linux.announce to: cola@xxxxxxxxxxxxxxxxx #
# PLEASE remember a short description of the software and the LOCATION.  #
# This group is archived at http://stump.algebra.com/~cola/              #
##########################################################################


$B$3$N>pJs$,$"$J$?$NC5$7$F$$?$b$N$+$I$&$+A*Br$7$F$/$@$5$!#(B
yes/$B$^$5$K$3$l$@!*(B   no/$B0c$&$J$!(B   part/$B0lIt8+$D$+$C$?(B   try/$B$3$l$G;n$7$F$_$k(B

$B$"$J$?$,C5$7$F$$?>pJs$O$I$N$h$&$J$3$H$+!"$4<+M3$K5-F~2<$5$!#FC$K!V$^$5$K$3$l$@!*!W$H8@$&>l9g$O5-F~$r$*4j$$7$^$9!#(B
$BNc(B:$B!VJ#?t$N%^%7%s$+$i(BCATV$B7PM3$G(Bipmasquerade$B$rMxMQ$7$F(BWeb$B$r;2>H$7$?$>l9g$N@_Dj$K$D$$F!W(B