summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2014-10-01 08:07:52 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2014-10-01 08:07:52 +0200
commit6c4f0aa3eaa0de86457dbc734ea552cd03a67a0d (patch)
tree3a5d5161046f3c97d9a18bd16285a807a20c2466 /README.md
Initial import of psocksxx version 0.0.5-1
Diffstat (limited to 'README.md')
-rw-r--r--README.md125
1 files changed, 125 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b6fd0ea
--- /dev/null
+++ b/README.md
@@ -0,0 +1,125 @@
+psocksxx
+========
+
+A C++ wrapper for POSIX sockets
+
+### Copyright and License
+
+Copyright (C) 2013 Uditha Atukorala.
+
+This software library is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This software library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+[GNU Lesser General Public License](http://www.gnu.org/licenses/lgpl.html)
+for more details.
+
+
+### The Concept
+
+This project was started to add to the features provided by the simple
+[socket-library](https://github.com/uditha-atukorala/socket-library) project,
+specially socket timeouts. But rather than sticking to the same class structure
+it was decided to use [stream buffers](http://gcc.gnu.org/onlinedocs/libstdc++/manual/streambufs.html)
+in C++ standard library.
+
+The inspiration to derive from std::streambuf came from the [socket++](http://www.linuxhacker.at/socketxx)
+library initially developed by Gnanasekaran Swaminathan. While the
+socket++ library seems to be stable and feature rich, the coding style
+and the lack of API documentation makes it a little difficult for the
+beginners.
+
+psocksxx library attempts to borrow the concepts from socket++ and
+socket-library, but not the code, and create a well documented (and
+hopefully easy to understand) POSIX socket communication wrapper in
+C++. To keep the code simple and clean this project will only support
+POSIX sockets.
+
+
+### Downloads
+You can download the source distributions from http://packages.geniusse.com/source/psocksxx/.
+
+
+#### Debian/Ubuntu packages
+First you should add the repository key to avoid warnings.
+
+ $ wget -q -O - http://packages.geniusse.com/debian/packman.gpg.key | sudo apt-key add -
+
+Then add the following to your `/etc/apt/sources.list`;
+
+ $ deb http://packages.geniusse.com/debian/ [release] main
+
+where the `[release]` being wheezy, jessie, sid etc.
+
+Finally update your package list and install psocksxx;
+
+ $ sudo aptitude update
+ $ sudo aptitude install libpsocksxx-dev
+
+
+### Dependencies
+
+* CppUnit >= 1.12.1 (for unit tests)
+* Doxygen (for doxygen documentation, of course)
+
+
+### Bugs and Feature Requests
+
+Please report all bugs and feature requests in [bugzilla](http://bugs.geniusse.com/) under the
+[psocksxx](http://bugs.geniusse.com/enter_bug.cgi?product=psocksxx) project.
+Known issues can be found [here](http://bugs.geniusse.com/buglist.cgi?query_format=specific&order=relevance%20desc&bug_status=__open__&product=psocksxx&list_id=130).
+
+
+### Version history
+
+__0.0.5__ - _29th June 2014_
+* Fixing inconsistent timeout behaviour on different systems
+
+__0.0.4__ - _10th November 2013_
+* bug fix - member functions should not be throwing exceptions if the
+ signature does not specify it.
+
+__0.0.3__ - _31st October 2013_
+* Suppress SIGPIPE signals
+* Code cleanup work
+
+__0.0.2__ - _29th September 2013_
+* Added timeout support for socket communications
+* New base socket stream I/O class to reduce redundant code
+* Added install targets for doxygen generated docs
+
+__0.0.1__ - _19th September 2013_
+* Initial release
+
+
+### Compiling from source
+
+If you are using the github source then first you need to initialise
+autotools.
+
+ $ libtoolize (glibtoolize in OS X)
+ $ aclocal
+ $ autoheader
+ $ autoconf
+ $ automake --add-missing (you will need automake >= 1.13)
+
+Or you can grab the latest snapshot tar from [CI artifacts](http://jenkins.geniusse.com/job/psocksxx/).
+
+After that you can use the usual `./configure && make`
+
+
+### Notes
+#### Continuous Integration
+
+There is a continuous integration Jenkins job hosted [here](http://jenkins.geniusse.com/job/psocksxx/)
+which contains the latest artifacts, unit test results and documentation etc.
+
+
+#### Doxygen documentation
+
+The latest doxygen documentation can be found at http://jenkins.geniusse.com/job/psocksxx/doxygen/.
+