--- /dev/null
+# ChangeLog v0.x
+
+## v 0.53
+> released 2011-09-27
+
+* Fix for FreeBSD/OpenBSD and -lm
+* Added memcached_exist()
+* Fix for memory when using config test.
+* CLI gained --quiet
+
+## v 0.52
+> released 2011-09-12
+
+* Build fixes for Ubuntu/Suse.
+* Fixes for OSX Lion.
+* Bug fix for looping back through dns lookups under certain failures.
+* Fixes related to dead server failures.
+
+## v 0.51
+> released 2011-07-21
+
+* memcached_callback_set() now takes its data argument as const
+* Update to tests.
+* Fix in parser for port number.
+
+## v 0.50
+> released 2011-06-20
+
+* Updates to C++ interface
+* Custom free allocators need to now check for value before calling free.
+* memcached_fetch_result() now uses the internal result when available (about 25 to 50% faster).
+* Fix for stats structure.
+* Updates to documentation.
+* memcached_fetch_result() now uses the internal result when available (about 25 to 50% faster).
+
+## v 0.49
+> released 2011-04-14
+
+* Fix calls to auto methods so that if value is not passed in nothing bad happens.
+* New parser calls for generating memcached_st objects.
+* New error system.
+* New flow control for messages means faster get/set calls.
+* Added new documentation system.
+* A behavior change has been now made that if you specify a weight for any server, we enable the weight flag and do weight balancing.
+* Added MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS to simplify the setting of AUTO REJECT for servers.
+
+## v 0.48
+> released 2011-03-16
+
+* Fix memory leak in server parse.
+* Move test framework out to be its own library (easier to work with Gearman).
+
+
+## v 0.47
+> released 2011-02-24
+
+* Additional fixes for OpenBSD.
+* Bug fix 677609, 456080.
+* SIGPIPE fix for Linux send().
+* memcapable can now test ascii or binary based on flags.
+* Additional build fixes for SASL.
+
+
+## v 0.46
+> released 2011-02-14
+
+* Fixes a number of corner case bugs.
+* Fixes related to OpenBSD.
+* Better testing for protocol version.
+* Removes special case infinite wait on blocking setup.
+
+## v 0.45
+> released 2011-02-09
+
+* Add support for systemtap
+
+## v 0.44
+> released 2010-09-23
+
+* Windows bug fixes.
+* Hudson port support in test harness.
+* Improved portability of test hanrness.
+* SASL fixes.
+
+## v 0.43
+> released 2010-07-28
+
+* Added --args to memstat so that a greater range of values can be returned.
+* Prelimanary support for Windows.
+* memcached_stat_execute() merged.
+
+## v 0.42
+> released 2010-07-06
+
+* Mistake in libtool caused issue with library version
+
+## v 0.41
+> released 2010-06-30
+
+* Added --file for memcat.
+* Added limemcached_ping() to libmemcached_util
+* Bugfix for some cases where connect would have issues with timeout.
+* Wrong value for errno given as error on an IO failure inside of poll.
+* Bug fix for issue where multiple interfaces with bad DNS were not being caught.
+
+## v 0.40
+> released 2010-04-23
+
+* Placed retry logic in for busted resolvers
+* Add an ignore for SIGPIPE to solve OSX issues.
+* A couple of fixed for memcached_light server.
+* Updated to debug mode to track io_wait
+
+## v 0.39
+> released 2010-04-06
+
+* Add support for prefix keys to binary protocol.
+* Remove the undocumented call memcached_server_remove().
+* The undocumented call memcached_server_by_key() now returns const.
+* memcached_server_error_reset() has been deprecated.
+* memcached_server_list() has been deprecated. Use memcached_server_cursor() to walk the servers found in a memcached_st() structure.
+* memcached_verbosity() can now be run concurrently with other operations.
+* SASL support.
+* Fixes memory leak found in EJECT HOSTS.
+
+## v 0.38
+> released 2010-02-10
+
+* C++ interface for libhashkit.
+* Modified memcached_set_memory_allocators() so that it requires a context pointer.
+* memcached_clone() now runs 5 times faster.
+* Functions used for callbacks are now given const memcached_st.
+* Added MEMCACHED_BEHAVIOR_CORK.
+* memslap now creates a configuration file at ~/.memslap.cnf
+* memcached_purge() now calls any callbacks registered during get execution.
+* Many fixes to memslap.
+* Updates for memcapable.
+* Compile fixes for OpenBSD.
+* Fix for possible recursive decent on IO failure.
+
+## v 0.37
+> released 2010-01-12
+
+* Fixed build for libhashkit.
+* Fixed install path regression.
+* Modified RPM to strict check install.
+* Added documentation for memcached_server_cursor();
+* Added memcached_servers_reset().
+* Modified memcached_st to remove dead cursor_server member.
+
+## v 0.36
+> released 2010-01-07
+
+* Merged in new memslap utility.
+* All of constants.h has been updated to match style (all old identifiers continue to work).
+* Added first pass for libhashkit.
+* Updated test Framework/extended tests.
+* Random read support during replication added.
+* Modified use_sort so that the option can be applied to any distribution type.
+* We removed the MEMCACHED_BEHAVIOR_KETAMA_COMPAT_MODE added in 0.35. Instead use memcached_behavior_set_distribution().
+
+## v 0.35
+> released 2009-11-09
+
+* Added support for by_key operations for inc/dec methods.
+* Added mget test to memslap.
+* Support for compatible ketama for SpyMemcached
+* Update C++ interface.
+* Fix for memcp
+
+## v 0.34
+> released 2009-10-13
+
+* Added support for setting behavior flags on a connection pool.
+* Don't increment server_failure_counter on normal disconnects.
+* Added prototype for a callback based protocol parser (server side) with examples so that you could let your own application speak the memcached protocol
+* Updated memcapable to test ASCII protocol.
+* Changed behavior so that server can be removed at first sign of failure.
+* Added memcached_server_get_last_disconnect() call
+
+## v 0.33
+> released 2009-09-23
+
+* Added memcapable to test servers for binary compatibility.
+* Updated C++ interface. Added basic support for C++ exceptions. Added multiple constructors the memcached client object. The C++ interface now takes parameters which are C++ types (such as std::string).
+* Several bug fixes for binary protocol support.
+* Fixed crashing issue with dumping from memcachd server (server internals were changed without documenting change).
+
+## v 0.32
+> released 2009-09-15
+
+* Change of behavior where linger is only modified for no-block and then it is set to zero.
+* Added Twitter's memcached_server_error() functions.
+* Fix for OSX compiles in development builds.
+* Updated C++ interface.
+* Updated memcached_mget and memcached_mget_by_key to take a size_t as a parameter instead of an unsigned int for number_of_keys.
+
+## v 0.31
+> released 2009-07-10
+
+* Added support or HA via replication.
+* malloc() removed for server key usage.
+* Update build system.
+* Added support for memcached_set_memory_allocators().
+* Fixed bug in configure.ac for have_htoll.
+
+## v 0.30
+> released 2009-06-01
+
+* Added memcachd_dump command (and framework for memdump tool).
+* Realigned all structures to remove padding (and line up important bits for 64bit caches.
+* Remove some of sprintf() in storage calls().
+* Removed printf() in stat call for unknown stat member.
+* memcached_generate_hash() function added.
+* Added tests to make sure all hash functions are stable.
+
+## v 0.29
+> released 2009-05-19
+
+* Fixed malloc usage to calloc for spots where we need zero filled memory.
+* All code warnings now treated as errors.
+* Fixes for debian packaging.
+* Added new pooling mechanism.
+* MEMCACHED_BEHAVIOR_NO_BLOCK no longer also sets MEMCACHED_BEHAVIOR_BUFFER_REQUESTS.
+* Updated generic rpm.
+
+## v 0.28
+> released 2009-04-15
+
+* Fixed bug in init sructure (reapplied)
+* Fixed bug in get/set by key (nikkhils@gmail.com)
+
+## v 0.27
+> released 2009-03-30
+
+* Added new UDP fire-forget mode.
+* Reworked performance for mget() to better make use of async protocol
+* Cleaned up execution of fetch (just one set of code now)
+* Fixed Jenkin's for big endian hosts.
+* Updates for memstat to determine network latency.
+* Updates for binary protocol.
+* Many updates to documentation.
+
+## v 0.26
+> released 2009-01-29
+
+* Fix for decrement on hash key
+* Fixed assert that was catching bad memset() call in host_reset()
+* Fix purge issue for blocked IO which has been stacked.
+
+## v 0.25
+> released 2008-11-28
+
+* Jenkins HASH added.
+* Update of Murmur hash code
+* Support explicit weights (Robey Pointer, Evan Weaver)
+* Bugfix for ketama continuum (Robey Pointer)
+* New behavior MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY (Robey Pointer)
+* Don't ever call stats for weighting servers, because it is unstable.
+
+## v 0.24
+> released 2008-09-16
+
+* Cleanup compile warnings.
+* Fix issues in partitioning by keys.
+* Fixed "fail case" to make sure when calling memcached_clone() no memcached_st is over written.
+* New memcached_server_by_key() method for finding a server from a key.
+* memcached_server_free() was added for freeing server structures.
+
+
+## v 0.23
+> released 2008-09-07
+
+* Added strings.h header for Solaris 9
+* Solaris 64bit fix.
+* Support for weighted Ketama from Yin Chen.
+* Fix for Chinese
+* Fix for 0 length key to trigger bad key.
+* Added behaviors MEMCACHED_BEHAVIOR_SND_TIMEOUT, MEMCACHED_BEHAVIOR_RCV_TIMEOUT
+* Support for Binary Protocol added
+
+## v 0.22
+> released 2008-07-14
+
+* Fix where master key was no being checked for "bad key"
+* Fixed bugs in stats output (thread output was wrong)
+* Clarified MEMCACHED_BAD_KEY_PROVIDED is return for bad prefix key.
+* Found a bug in Flags return (Jacek Ostrowski)
+* Fixed issue with compiling on Visual Studio
+
+## v 0.21
+> released 2008-05-24
+
+* Change of char * to const char * for all key based functions.
+* New MEMCACHED_CALLBACK_PREFIX_KEY added. You can now create domains for values.
+* Fixed bug introducd in last version on memcp
+* Fix for death of file io to call shutdown()
+
+## v 0.20
+> released 2008-05-05
+
+* New consistent distribution tests.
+* Found a memory leak when a server constantly fails.
+* Fix in watchpoint macro
+* Changed default timeout to 1 second for poll timeouts
+* Wheel uses less memory/dynamic allocation for size (no longer limited to 512 hosts by default.
+* memslap memory leak fix
+* Added Ketama distribution
+* Fix assert.h compile problem on CentOS
+
+## v 0.19
+> released 2008-04-09
+
+* Documentation fix in libmemcached.
+* Fixed bug where sort was always occuring on hosts
+* Logic fix in branch prediction (thanks Jay!)
+* Read through cached support.
+* Fixed for cas by key operation.
+* Fix for memcached_server_st list structures to have correct count.
+* Added callback MEMCACHED_CALLBACK_DELETE_TRIGGER
+* Removed function call in favor of macro (aka cut out some instructions)
+
+
+## v 0.18
+> released 2008-03-17
+
+* Fix plus tests for non-zero value objects and flags.
+* MEMCACHED_HASH_MURMUR added for murmur algorithm provided.
+* MEMCACHED_BEHAVIOR_RETRY_TIMEOUT added to keep connecting from looping on timeout.
+* gcc branch prediction optimizations
+* Refactored entire tree to make include files cleaner
+* Fixed leaked socket.
+
+## v 0.17
+> released 2008-02-27
+
+* MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT added for connect timeout in non-block mode.
+* Incompatible change in memcached_behavior_set() api. We now use a uint64_t, instead of a pointer.
+* Fix for storage of values for zero.
+* memcached_server_cursor() function added to API for cycling through servers.
+
+## v 0.16
+> released 2008-02-18
+
+* Work on the UDP protocol
+* Added get_by_key, set_by_key tests for C++ API
+* Fix for limit_maxbytes to be 64bit in stats
+* Added Atom Smasher test (scale baby, scale!)
+* Servers are now sorted, meaning that servers are now ordered so that clients with the same lists, will have same distribution. (Idea from Ross McFarland). MEMCACHED_BEHAVIOR_SORT_HOSTS was added to enable this support.
+* Added MEMCACHED_BAD_KEY_PROVIDED error for auto, set, and get operations. MEMCACHED_BEHAVIOR_VERIFY_KEY was added to enable this feature.
+* More error messages on command line tools.
+* Fixed bugs in memcached_cas() operator.
+* Fix to loop through interfaces
+
+## v 0.15
+> released 2008-01-29
+
+* More work on the C++ API.
+* Bug fixes around block corner cases.
+* Slight performance increase in both read() and write().
+
+## v 0.14
+> released 2008-01-22
+
+* For for bug found by Evan Weaver where increment() was not returning propper error of value was not found.
+* Fix for bad null pointer on flag by Toru Maesaka.
+* Refactor of all IO to just pass in the active server
+* Problem configuring (PKG_CHECK_MODULES) fixed by removal of "rpath" in support/libmemcached.pc.in (Thanks to Ross McFarland).
+* Added memcached_callback_get()/set()
+* First prototype of C++ interface
+* Updated docs for uint16_t changes in previous release
+
+## v 0.13
+> released 2008-01-13
+
+* MEMCACHED_BEHAVIOR_USER_DATA added to store user pointer.
+* Fix for failure to connect to invalidate socket.
+* Patch from Marc Rossi to add --hash option for memcp, memrm, and memcat.
+* Kevin's patch for fixing EOF issues during a read.
+* Toru Maesaka patch for stats mismatch
+* Fix for when CRC return 0
+* Fixed uint16_t issues around flags. Turns out the documentation on the protocol was wrong.
+* Lingering socket fixes for FreeBSD.
+* Patches from Kevin Dalley for FreeBSD 4.0
+* Added multi delete functions.
+* All get key returns have C style null termination
+* If memcached_server_list_append is passed NULLs instead of pointers it returns NULL.
+* Added memcached_fetch_execute() method
+* Found a bug where memcached_fetch() was not null terminating the result value.
+* memcached_behavior() now has the ability to set "buffering" so that data is not automatically flushed.
+* Behavior change, buffered commands now return MEMCACHED_BUFFERED
+
+## v 0.12
+> released 2007-12-11
+
+* Updates for consistent hashing
+* IPV6 support
+* Static allocation for hostname (performance)
+* Fixed bug where in non-block mode all data might not have been sent on close().
+* Refactor of memcached_get() to use common code.
+* Change in value fetch, MEMCACHED_END is now returned when keys are no longer in the pipe.
+* Fixed bug where key could be out of range of characters
+* Added _by_key() methods to allow partitioning of values to particular servers.
+* MEMCACHED_DEFAILT_TIMEOUT is now set to a non -1 value.
+* Performance improvements in get operations.
+
+## v 0.11
+> released 2007-11-26
+
+* Added option to memcache_behavior_set() so that poll() can be timed out.
+* Fixed memory leak in case of using memcached_fetch_result() where no value was returned.
+* Bug fixed in memcached_connect() which would cause servers that did not need to be enabled to be enabled (performance issue).
+* Rewrote bounds checking code for get calls.
+* "make test" now starts its own memcached servers.
+* Added Hseih hash (MEMCACHED_HASH_HSIEH), which is showing about 7% performance over standard hash.
+
+## v 0.10
+> released 2007-11-21
+
+* Added append binary test.
+* Added MEMCACHED_BEHAVIOR_CACHE_LOOKUPS behavior so that you can save on multiple DNS lookups.
+* Added CAS support, though this is optional and must be enabled during runtime.
+* Added the utility memerror to create human readable error strings from memcached errors (aka convert ints to strings)
+* Fixed type in MEMCACHED_HOST_LOOKUP_FAILURE
+* Fixed bug where hostname might not be null terminated
+* Moved to using gethostbyname_r() on Linux to solve thread safety issue
+* Added -rpath support for pkg-config
+* Documentation fix for hash setting using memcached_behavior_set()
+
+## v 0.9
+> released 2007-11-15
+
+* fix for when no servers are definied.
+* different buffers are now kept for different connections to speed up async efforts
+* Modified increment/decrement functions to return uint64_t values
+* Fixed bug in cases where zero length keys were provided
+* Thread cleanup issue in memslap
+* No hostname lookup on reconnect
+* Fix for flag settings (was doing hex by accident!)
+* Support for 1.2.4 server additions "prepend" and "append" added.
+* Added memcached_version()... not sure if I will make this public or not.
+
+## v 0.8
+> released 2007-11-05
+
+* Adding support for CRC hash method
+* Adding support for UNIX sockets
+* Added additional HASHing methods of FNV1_64,FNV1A_64, FNV1_32, FNV1A_32
+* Added pkgconfig support (PKG_CHECK_MODULES)
+* Fixed conflict with defined type in MySQL
+* Added memcached_result_st structure and functions to manipulate it.
+
+## v 0.7
+> released 2007-10-30
+
+* Poved to poll() from select()
+* Fixes in internal string class for allocation of large numbers of strings.
+* memcached_mget() function now sends keys as it parses them instead of building strings as it goes.
+* Propper flush now for making sure we get all IO sent even when in non-block mode.
+* Added --enable-debug rule for configure
+* All asserts() removed (hey this is going into production!)
+
+
+## v 0.6
+> released 2007-10-17
+
+* get value returns are now null terminated (request by Cal Heldenbrand)
+* Fixed connections for more hosts then two.
+* Rewrite of the read/write IO systems to handle different sorts of host failures.
+* Added man pages for all functions and tools
+* Raised buffer size for readinng/writing to 16K
+* You can now optionally set the socket size for recv/send via memached_behavior_set/get.
+
+## v 0.5
+> released 2007-10-09
+
+* Ruby maintainer mentioned TCP_NODELAY patch he had added. Added this to C
+ library as well. (Eric Hodel drbrain@segment7.net)
+* Added support script for set_benchmark
+* Updated memslap to allow testing of TCP_NODELAY
+* Updated memslap to support --flush (aka dump memcache servers before testing)
+* Fixed bug in multiple hosts not being activated
+* Added environmental variable MEMCACHED_SERVERS which can be used to set the servers list.
+* fixed memcached_stat method (and now memstat works)
+* server connect now happens on demand.
+* Help for all command line applications
+
+## v 0.4
+> released 2007-10-03
+
+* Added buffered IO to write calls for keys
+* Added buffered IO for reads
+* memstat was broken (bad if/else on connect)
+* New non-blocking IO (not default yet). Mucho faster
+* Refactor of test system.
+* memslap crash solved
+
+## v 0.3
+> released 2007-10-01
+
+* Jeff Fisher <guppy@techmonkeys.org> provided a spec file
+* Added "make rpm" around dist file
+* Added support for Solaris
+* Added support for DTrace
+* Fixed read to be recv and write to be send
+* Bug fix where memstat would core if no server was found
+* Added memslap tool (load generator)
+* Numerous bug fixes in library
+* Added calls to library for creating host lists (see text cases to understand how to use this).
+
+## v 0.2
+> released 2007-09-27
+
+* First public version
--- /dev/null
+# ChangeLog v1.0
+
+## v 1.0.18
+> released 2014-02-09
+
+* MEMCACHED_BEHAVIOR_RETRY_TIMEOUT can now be set to zero.
+* Numerous bug fixes.
+
+## v 1.0.17
+> released 2013-04-03
+
+* Remove c++ namespace that was being exposed (the API should be plug compatible)..
+* Fix cases where --servers wasn't behaving the same in all clients.
+
+## v 1.0.16
+> released 2013-02-01
+
+* Added support to do two part shutdown of socket.
+* Fixes for Fedora 18.
+* Fix for binary memcached_touch()
+
+## v 1.0.15
+> released 2012-12-17
+
+* Added support for Murmur3 (HASHKIT_HASH_MURMUR3)
+* Portability fixes.
+
+## v 1.0.14
+> released 2012-11-14
+
+* CLIENT_ERROR fixed to not be treated as a fatal error.
+* Compiler fixes for older Ubuntu releases.
+
+## v 1.0.13
+> released 2012-10-19
+
+* Fix bug that caused version string to not be exported correctly.
+
+## v 1.0.12
+> released 2012-10-09
+
+* Added memcached_result_take_value().
+* Added ax_libmemcached.m4
+
+## v 1.0.11
+> released 2012-09-17
+
+* Removed custom version of memcached.
+* Updated hardening rules.
+* Fixed a case where the return error from a socket connection differred from that of a TCP/IP socket.
+
+## v 1.0.10
+> released 2012-07-30
+
+* --disable-assert has been removed from configure, and --enable-assert has been added in its place.
+* Compiling fixes for Clang on OSX Mountain Lion.
+
+## v 1.0.9
+> released 2012-07-05
+
+* Faster close on socket.
+* Instance allocation is now seperated from server interface.
+ This should allow for a better preservation of ABI compliance from now on.
+* Fix close on exec bug.
+* Numerous other bug fixes.
+
+## v 1.0.8
+> released 2012-05-22
+
+* Added support for setting options via ENV variable LIBMEMCACHED
+* Fix corner case on last used result.
+
+## v 1.0.7
+> released 2012-04-28
+
+* Add API call for exist calls.
+* Update all license files to be BSD.
+
+## v 1.0.6
+> released 2012-04-08
+
+* Fixes for gcc 4.7, lp:961812
+* Fix for restart issue that happens under testing.
+* Fix for lp:962815.
+* Support for transparent AES encryption.
+
+## v 1.0.5
+> released 2012-03-14
+
+* Fixes for OSX.
+* Version is now parsed directly in the parser, which makes buffered operations now work with it..
+* memstat has been extended so that it can be used to find the version of the server.
+* Update documentation.
+* Fixes for compile issues on Debian and Ubuntu
+
+## v 1.0.4
+> released 2012-01-27
+
+* Fix for memcached_dump().
+* Additional testing for memcached_stat_execute().
+
+## v 1.0.3
+> released 2012-01-09
+
+* Increased size of sort buffer used during Ketama.
+* Added support for new behavior to handle dead servers.
+* Overall haul of UDP IO.
+* Fixed C compile issue with memcached_exist()
+* Numerous bug fixes.
+* Clang support for OSX.
+* All commands now using vector send support.
+
+## v 1.0.2
+> released 2011-10-24
+
+* Dropped libmemcached/memcached_util.h (undocumented header file)
+* Added memcached_touch() and memcached_touch_by_key()
+* UDP support restructured to toggle on a complete memcached_st structure.
+
+---
+
+See [ChangeLog-0](./ChangeLog-0.md) for changes prior v1.0.
--- /dev/null
+# ChangeLog v1.1
+
+## v 1.1.0
+
+**NOTE:**
+This is a bug fix release, not a feature release. The minor version number
+was incremented due to the following changes:
+
+* Ported build system to CMake.
+* Ported test suite to Catch2.
+* Build requires C++11 compiler support.
+* Tests require C++17 compiler support.
+* Moved the project from launchpad to github:
+ * Source: https://github.com/m6w6/libmemcached
+ * Documentation: https://m6w6.github.io/libmemcached
+ * Continuous Integration:
+ * Github: https://github.com/m6w6/libmemcached/actions (Linux, MacOS **·** amd64)
+ * Travis: https://travis-ci.org/m6w6/libmemcached (Linux **·** arm64, ppc64le, s390x)
+ * Cirrus: https://cirrus-ci.com/m6w6/libmemcached (FreeBSD **·** amd64)
+
+> released YYYY-MM-DD
+
+* Fix build failure due to comparison of incompatible types in bin/memflush and bin/memstat.
+* Fix wrong type of memcached_instance_st::server_timeout_counter_query_id from uint32_t to uint64_t.
+* Fix memcached_dump():
+ returned MEMCACHED_CLIENT_ERROR on request to dump illegal slab id.
+* Fix bin/memcapable:
+ failed with "No hostname was provided" when providing a hostname.
+* Fix hashkit/murmur and hashkit/murur3:
+ undefined behavior on platforms requiring aligned access.
+* Fix Memcache::set():
+ possible subscription of empty vector.
+* Fix libmemcached_util_version_check().
+* Fix ketama/consistent hashing:
+ crash on reallocation of continuum.
+* Fix [gh #90](https://github.com/m6w6/libmemcached/issues/90):
+ Build fails on Darwin.
+* Fix [gh #83](https://github.com/m6w6/libmemcached/issues/83):
+ memcp waits forever if file no found.
+* Fix [gh #80](https://github.com/m6w6/libmemcached/issues/80):
+ memparse docs.
+* Fix [gh #72](https://github.com/m6w6/libmemcached/issues/72)
+ and [gh #47](https://github.com/m6w6/libmemcached/issues/47):
+ memcached_return_t docs.
+* Fix [gh #62](https://github.com/m6w6/libmemcached/issues/62):
+ uint32_t overflow cause busy loop.
+* Removed restriction of UDP+IPv6.
+* Fix SERVER_ERROR_MEMORY_ALLOCATION_FAILURE:
+ recognize more strings returned by the server.
+* Fix [gh #13](https://github.com/m6w6/libmemcached/issues/13):
+ reset continuum counter after freeing them.
+* Fix [gh #14](https://github.com/m6w6/libmemcached/issues/14)
+ and [gh #17](https://github.com/m6w6/libmemcached/issues/17):
+ SASL: AUTH_CONTINUE was considered a failure and caused IO reset.
+* Fix [gh #25](https://github.com/m6w6/libmemcached/issues/25):
+ hashkit/murmur3 unavailable.
+* Fix missing handling of EAGAIN for non-blocking unix domain socket.
+* Fix [gh #35](https://github.com/m6w6/libmemcached/issues/35):
+ handling of BEHAVIOR_REMOVE_FAILED_SERVERS.
+* Fix [gh #41](https://github.com/m6w6/libmemcached/issues/41):
+ ensure stable sort on continuum host key collision.
+* Fix [gh #42](https://github.com/m6w6/libmemcached/issues/42):
+ MEMCACHED_MAX_BUFFER docs.
+* Fix [gh #43](https://github.com/m6w6/libmemcached/issues/43):
+ libmemcached_configuration docs.
+* Fix [gh #46](https://github.com/m6w6/libmemcached/issues/46):
+ clarification on millisecond timeout docs.
+* Fix [gh #50](https://github.com/m6w6/libmemcached/issues/50):
+ memcached_fetch_result() can return previously returned data.
+* Fix [gh #53](https://github.com/m6w6/libmemcached/issues/53):
+ stack overflow in memcached_fetch_result().
+* Fix [gh #57](https://github.com/m6w6/libmemcached/issues/57):
+ include <inttypes.h> vs <cinttypes>
+* Fix [gh #58](https://github.com/m6w6/libmemcached/issues/58):
+ more specific error messages when connect() fails.
+* Fix [gh #59](https://github.com/m6w6/libmemcached/issues/59):
+ bin/memcat: typo in "No servers provied".
+* Fix [gh #77](https://github.com/m6w6/libmemcached/issues/77):
+ undeclared UINT64_C in ketama.cc.
+* Fix [gh #12](https://github.com/m6w6/libmemcached/issues/12):
+ never reconnects after connection reset (binary protocol).
+* Fix [gh #49](https://github.com/m6w6/libmemcached/issues/49):
+ assertion memcached_failed(rc) failed in memcached_send_ascii().
+* Fix [gh #67](https://github.com/m6w6/libmemcached/issues/67):
+ get returns NOTFOUND on timeout.
+* Fix [gh #76](https://github.com/m6w6/libmemcached/issues/76):
+ memcached_touch() crashes when expiration=-1 (ASCII only).
+* Fix [gh #23](https://github.com/m6w6/libmemcached/issues/23):
+ build fails with bison 2.3.
+* Fix memaslap: build fails with newer compiler versions.
+* Fix usage of strerror_r() implementations returning pointer to char.
+* Fix pipelining commands with memcached >= 1.6.
+* Fixed memcached_stat_get_value(): buffer overflow.
+* Fix memcached_stat(): undefined behavior due to unintialized memcached_return_t.
+* Fix SASL tests: requires SASL_PWDB_CONF.
+* Fix bin/memaslap to idnentify itself as memaslap instead of memslap.
+* Fix bin/memcapable to work with memcached >= 1.6.
+* Fix murmur and murmur3 hashes on big endian platforms.
+* Fix [gh #82](https://github.com/m6w6/libmemcached/issues/82),
+ [gh #64](https://github.com/m6w6/libmemcached/issues/64) and
+ [gh #21](https://github.com/m6w6/libmemcached/issues/21):
+ clarify documentation on replication.
+
+---
+
+See [ChangeLog-1.0](./ChangeLog-1.0.md) for changes prior v1.1.
+++ /dev/null
-# ChangeLog
-## 1.1.0
-
-**NOTE:**
-This is not a feature, but a bug fix release. The minor version number
-has been incremented due to the following changes:
-
-* Ported build system to CMake.
-* Ported tests to Catch2.
-* Build requires C++11 compiler support.
-* Tests require C++17 compiler support.
-* Moved the project from launchpad to github:
- * Source: https://github.com/m6w6/libmemcached
- * Documentation: https://m6w6.github.io/libmemcached
- * Continuous Integration:
- * Github: https://github.com/m6w6/libmemcached/actions (Linux, MacOS **·** amd64)
- * Travis: https://travis-ci.org/m6w6/libmemcached (Linux **·** arm64, ppc64le, s390x)
- * Cirrus: https://cirrus-ci.com/m6w6/libmemcached (FreeBSD **·** amd64)
-
-> released 2020-10-31
-
-* Fix build failure due to comparison of incompatible types in bin/memflush and bin/memstat.
-* Fix wrong type of memcached_instance_st::server_timeout_counter_query_id from uint32_t to uint64_t.
-* Fix memcached_dump():
- returned MEMCACHED_CLIENT_ERROR on request to dump illegal slab id.
-* Fix bin/memcapable:
- failed with "No hostname was provided" when providing a hostname.
-* Fix hashkit/murmur and hashkit/murur3:
- undefined behavior on platforms requiring aligned access.
-* Fix Memcache::set():
- possible subscription of empty vector.
-* Fix libmemcached_util_version_check().
-* Fix ketama/consistent hashing:
- crash on reallocation of continuum.
-* Fix [gh #90](https://github.com/m6w6/libmemcached/issues/90):
- Build fails on Darwin.
-* Fix [gh #83](https://github.com/m6w6/libmemcached/issues/83):
- memcp waits forever if file no found.
-* Fix [gh #80](https://github.com/m6w6/libmemcached/issues/80):
- memparse docs.
-* Fix [gh #72](https://github.com/m6w6/libmemcached/issues/72)
- and [gh #47](https://github.com/m6w6/libmemcached/issues/47):
- memcached_return_t docs.
-* Fix [gh #62](https://github.com/m6w6/libmemcached/issues/62):
- uint32_t overflow cause busy loop.
-* Removed restriction of UDP+IPv6.
-* Fix SERVER_ERROR_MEMORY_ALLOCATION_FAILURE:
- recognize more strings returned by the server.
-* Fix [gh #13](https://github.com/m6w6/libmemcached/issues/13):
- reset continuum counter after freeing them.
-* Fix [gh #14](https://github.com/m6w6/libmemcached/issues/14)
- and [gh #17](https://github.com/m6w6/libmemcached/issues/17):
- SASL: AUTH_CONTINUE was considered a failure and caused IO reset.
-* Fix [gh #25](https://github.com/m6w6/libmemcached/issues/25):
- hashkit/murmur3 unavailable.
-* Fix missing handling of EAGAIN for non-blocking unix domain socket.
-* Fix [gh #35](https://github.com/m6w6/libmemcached/issues/35):
- handling of BEHAVIOR_REMOVE_FAILED_SERVERS.
-* Fix [gh #41](https://github.com/m6w6/libmemcached/issues/41):
- ensure stable sort on continuum host key collision.
-* Fix [gh #42](https://github.com/m6w6/libmemcached/issues/42):
- MEMCACHED_MAX_BUFFER docs.
-* Fix [gh #43](https://github.com/m6w6/libmemcached/issues/43):
- libmemcached_configuration docs.
-* Fix [gh #46](https://github.com/m6w6/libmemcached/issues/46):
- clarification on millisecond timeout docs.
-* Fix [gh #50](https://github.com/m6w6/libmemcached/issues/50):
- memcached_fetch_result() can return previously returned data.
-* Fix [gh #53](https://github.com/m6w6/libmemcached/issues/53):
- stack overflow in memcached_fetch_result().
-* Fix [gh #57](https://github.com/m6w6/libmemcached/issues/57):
- include <inttypes.h> vs <cinttypes>
-* Fix [gh #58](https://github.com/m6w6/libmemcached/issues/58):
- more specific error messages when connect() fails.
-* Fix [gh #59](https://github.com/m6w6/libmemcached/issues/59):
- bin/memcat: typo in "No servers provied".
-* Fix [gh #77](https://github.com/m6w6/libmemcached/issues/77):
- undeclared UINT64_C in ketama.cc.
-* Fix [gh #12](https://github.com/m6w6/libmemcached/issues/12):
- never reconnects after connection reset (binary protocol).
-* Fix [gh #49](https://github.com/m6w6/libmemcached/issues/49):
- assertion memcached_failed(rc) failed in memcached_send_ascii().
-* Fix [gh #67](https://github.com/m6w6/libmemcached/issues/67):
- get returns NOTFOUND on timeout.
-* Fix [gh #76](https://github.com/m6w6/libmemcached/issues/76):
- memcached_touch() crashes when expiration=-1 (ASCII only).
-* Fix [gh #23](https://github.com/m6w6/libmemcached/issues/23):
- build fails with bison 2.3.
-* Fix memaslap: build fails with newer compiler versions.
-* Fix usage of strerror_r() implementations returning pointer to char.
-* Fix pipelining commands with memcached >= 1.6.
-* Fixed memcached_stat_get_value(): buffer overflow.
-* Fix memcached_stat(): undefined behavior due to unintialized memcached_return_t.
-* Fix SASL tests: requires SASL_PWDB_CONF.
-* Fix bin/memaslap to idnentify itself as memaslap instead of memslap.
-* Fix bin/memcapable to work with memcached >= 1.6.
-* Fix murmur and murmur3 hashes on big endian platforms.
-* Fix [gh #82](https://github.com/m6w6/libmemcached/issues/82),
- [gh #64](https://github.com/m6w6/libmemcached/issues/64) and
- [gh #21](https://github.com/m6w6/libmemcached/issues/21):
- clarify documentation on replication.
-
----
-
-## 1.0.18
-> released 2014-02-09
-
-* MEMCACHED_BEHAVIOR_RETRY_TIMEOUT can now be set to zero.
-* Numerous bug fixes.
-
-## 1.0.17
-> released 2013-04-03
-
-* Remove c++ namespace that was being exposed (the API should be plug compatible)..
-* Fix cases where --servers wasn't behaving the same in all clients.
-
-## 1.0.16
-> released 2013-02-01
-
-* Added support to do two part shutdown of socket.
-* Fixes for Fedora 18.
-* Fix for binary memcached_touch()
-
-## 1.0.15
-> released 2012-12-17
-
-* Added support for Murmur3 (HASHKIT_HASH_MURMUR3)
-* Portability fixes.
-
-## 1.0.14
-> released 2012-11-14
-
-* CLIENT_ERROR fixed to not be treated as a fatal error.
-* Compiler fixes for older Ubuntu releases.
-
-## 1.0.13
-> released 2012-10-19
-
-* Fix bug that caused version string to not be exported correctly.
-
-## 1.0.12
-> released 2012-10-09
-
-* Added memcached_result_take_value().
-* Added ax_libmemcached.m4
-
-## 1.0.11
-> released 2012-09-17
-
-* Removed custom version of memcached.
-* Updated hardening rules.
-* Fixed a case where the return error from a socket connection differred from that of a TCP/IP socket.
-
-## 1.0.10
-> released 2012-07-30
-
-* --disable-assert has been removed from configure, and --enable-assert has been added in its place.
-* Compiling fixes for Clang on OSX Mountain Lion.
-
-## 1.0.9
-> released 2012-07-05
-
-* Faster close on socket.
-* Instance allocation is now seperated from server interface.
- This should allow for a better preservation of ABI compliance from now on.
-* Fix close on exec bug.
-* Numerous other bug fixes.
-
-## 1.0.8
-> released 2012-05-22
-
-* Added support for setting options via ENV variable LIBMEMCACHED
-* Fix corner case on last used result.
-
-## 1.0.7
-> released 2012-04-28
-
-* Add API call for exist calls.
-* Update all license files to be BSD.
-
-## 1.0.6
-> released 2012-04-08
-
-* Fixes for gcc 4.7, lp:961812
-* Fix for restart issue that happens under testing.
-* Fix for lp:962815.
-* Support for transparent AES encryption.
-
-## 1.0.5
-> released 2012-03-14
-
-* Fixes for OSX.
-* Version is now parsed directly in the parser, which makes buffered operations now work with it..
-* memstat has been extended so that it can be used to find the version of the server.
-* Update documentation.
-* Fixes for compile issues on Debian and Ubuntu
-
-## 1.0.4
-> released 2012-01-27
-
-* Fix for memcached_dump().
-* Additional testing for memcached_stat_execute().
-
-## 1.0.3
-> released 2012-01-09
-
-* Increased size of sort buffer used during Ketama.
-* Added support for new behavior to handle dead servers.
-* Overall haul of UDP IO.
-* Fixed C compile issue with memcached_exist()
-* Numerous bug fixes.
-* Clang support for OSX.
-* All commands now using vector send support.
-
-## 1.0.2
-> released 2011-10-24
-
-* Dropped libmemcached/memcached_util.h (undocumented header file)
-* Added memcached_touch() and memcached_touch_by_key()
-* UDP support restructured to toggle on a complete memcached_st structure.
-
-## 0.53
-> released 2011-09-27
-
-* Fix for FreeBSD/OpenBSD and -lm
-* Added memcached_exist()
-* Fix for memory when using config test.
-* CLI gained --quiet
-
-## 0.52
-> released 2011-09-12
-
-* Build fixes for Ubuntu/Suse.
-* Fixes for OSX Lion.
-* Bug fix for looping back through dns lookups under certain failures.
-* Fixes related to dead server failures.
-
-## 0.51
-> released 2011-07-21
-
-* memcached_callback_set() now takes its data argument as const
-* Update to tests.
-* Fix in parser for port number.
-
-## 0.50
-> released 2011-06-20
-
-* Updates to C++ interface
-* Custom free allocators need to now check for value before calling free.
-* memcached_fetch_result() now uses the internal result when available (about 25 to 50% faster).
-* Fix for stats structure.
-* Updates to documentation.
-* memcached_fetch_result() now uses the internal result when available (about 25 to 50% faster).
-
-## 0.49
-> released 2011-04-14
-
-* Fix calls to auto methods so that if value is not passed in nothing bad happens.
-* New parser calls for generating memcached_st objects.
-* New error system.
-* New flow control for messages means faster get/set calls.
-* Added new documentation system.
-* A behavior change has been now made that if you specify a weight for any server, we enable the weight flag and do weight balancing.
-* Added MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS to simplify the setting of AUTO REJECT for servers.
-
-## 0.48
-> released 2011-03-16
-
-* Fix memory leak in server parse.
-* Move test framework out to be its own library (easier to work with Gearman).
-
-
-## 0.47
-> released 2011-02-24
-
-* Additional fixes for OpenBSD.
-* Bug fix 677609, 456080.
-* SIGPIPE fix for Linux send().
-* memcapable can now test ascii or binary based on flags.
-* Additional build fixes for SASL.
-
-
-## 0.46
-> released 2011-02-14
-
-* Fixes a number of corner case bugs.
-* Fixes related to OpenBSD.
-* Better testing for protocol version.
-* Removes special case infinite wait on blocking setup.
-
-## 0.45
-> released 2011-02-09
-
-* Add support for systemtap
-
-## 0.44
-> released 2010-09-23
-
-* Windows bug fixes.
-* Hudson port support in test harness.
-* Improved portability of test hanrness.
-* SASL fixes.
-
-## 0.43
-> released 2010-07-28
-
-* Added --args to memstat so that a greater range of values can be returned.
-* Prelimanary support for Windows.
-* memcached_stat_execute() merged.
-
-## 0.42
-> released 2010-07-06
-
-* Mistake in libtool caused issue with library version
-
-## 0.41
-> released 2010-06-30
-
-* Added --file for memcat.
-* Added limemcached_ping() to libmemcached_util
-* Bugfix for some cases where connect would have issues with timeout.
-* Wrong value for errno given as error on an IO failure inside of poll.
-* Bug fix for issue where multiple interfaces with bad DNS were not being caught.
-
-## 0.40
-> released 2010-04-23
-
-* Placed retry logic in for busted resolvers
-* Add an ignore for SIGPIPE to solve OSX issues.
-* A couple of fixed for memcached_light server.
-* Updated to debug mode to track io_wait
-
-## 0.39
-> released 2010-04-06
-
-* Add support for prefix keys to binary protocol.
-* Remove the undocumented call memcached_server_remove().
-* The undocumented call memcached_server_by_key() now returns const.
-* memcached_server_error_reset() has been deprecated.
-* memcached_server_list() has been deprecated. Use memcached_server_cursor() to walk the servers found in a memcached_st() structure.
-* memcached_verbosity() can now be run concurrently with other operations.
-* SASL support.
-* Fixes memory leak found in EJECT HOSTS.
-
-## 0.38
-> released 2010-02-10
-
-* C++ interface for libhashkit.
-* Modified memcached_set_memory_allocators() so that it requires a context pointer.
-* memcached_clone() now runs 5 times faster.
-* Functions used for callbacks are now given const memcached_st.
-* Added MEMCACHED_BEHAVIOR_CORK.
-* memslap now creates a configuration file at ~/.memslap.cnf
-* memcached_purge() now calls any callbacks registered during get execution.
-* Many fixes to memslap.
-* Updates for memcapable.
-* Compile fixes for OpenBSD.
-* Fix for possible recursive decent on IO failure.
-
-## 0.37
-> released 2010-01-12
-
-* Fixed build for libhashkit.
-* Fixed install path regression.
-* Modified RPM to strict check install.
-* Added documentation for memcached_server_cursor();
-* Added memcached_servers_reset().
-* Modified memcached_st to remove dead cursor_server member.
-
-## 0.36
-> released 2010-01-07
-
-* Merged in new memslap utility.
-* All of constants.h has been updated to match style (all old identifiers continue to work).
-* Added first pass for libhashkit.
-* Updated test Framework/extended tests.
-* Random read support during replication added.
-* Modified use_sort so that the option can be applied to any distribution type.
-* We removed the MEMCACHED_BEHAVIOR_KETAMA_COMPAT_MODE added in 0.35. Instead use memcached_behavior_set_distribution().
-
-## 0.35
-> released 2009-11-09
-
-* Added support for by_key operations for inc/dec methods.
-* Added mget test to memslap.
-* Support for compatible ketama for SpyMemcached
-* Update C++ interface.
-* Fix for memcp
-
-## 0.34
-> released 2009-10-13
-
-* Added support for setting behavior flags on a connection pool.
-* Don't increment server_failure_counter on normal disconnects.
-* Added prototype for a callback based protocol parser (server side) with examples so that you could let your own application speak the memcached protocol
-* Updated memcapable to test ASCII protocol.
-* Changed behavior so that server can be removed at first sign of failure.
-* Added memcached_server_get_last_disconnect() call
-
-## 0.33
-> released 2009-09-23
-
-* Added memcapable to test servers for binary compatibility.
-* Updated C++ interface. Added basic support for C++ exceptions. Added multiple constructors the memcached client object. The C++ interface now takes parameters which are C++ types (such as std::string).
-* Several bug fixes for binary protocol support.
-* Fixed crashing issue with dumping from memcachd server (server internals were changed without documenting change).
-
-## 0.32
-> released 2009-09-15
-
-* Change of behavior where linger is only modified for no-block and then it is set to zero.
-* Added Twitter's memcached_server_error() functions.
-* Fix for OSX compiles in development builds.
-* Updated C++ interface.
-* Updated memcached_mget and memcached_mget_by_key to take a size_t as a parameter instead of an unsigned int for number_of_keys.
-
-## 0.31
-> released 2009-07-10
-
-* Added support or HA via replication.
-* malloc() removed for server key usage.
-* Update build system.
-* Added support for memcached_set_memory_allocators().
-* Fixed bug in configure.ac for have_htoll.
-
-## 0.30
-> released 2009-06-01
-
-* Added memcachd_dump command (and framework for memdump tool).
-* Realigned all structures to remove padding (and line up important bits for 64bit caches.
-* Remove some of sprintf() in storage calls().
-* Removed printf() in stat call for unknown stat member.
-* memcached_generate_hash() function added.
-* Added tests to make sure all hash functions are stable.
-
-## 0.29
-> released 2009-05-19
-
-* Fixed malloc usage to calloc for spots where we need zero filled memory.
-* All code warnings now treated as errors.
-* Fixes for debian packaging.
-* Added new pooling mechanism.
-* MEMCACHED_BEHAVIOR_NO_BLOCK no longer also sets MEMCACHED_BEHAVIOR_BUFFER_REQUESTS.
-* Updated generic rpm.
-
-## 0.28
-> released 2009-04-15
-
-* Fixed bug in init sructure (reapplied)
-* Fixed bug in get/set by key (nikkhils@gmail.com)
-
-## 0.27
-> released 2009-03-30
-
-* Added new UDP fire-forget mode.
-* Reworked performance for mget() to better make use of async protocol
-* Cleaned up execution of fetch (just one set of code now)
-* Fixed Jenkin's for big endian hosts.
-* Updates for memstat to determine network latency.
-* Updates for binary protocol.
-* Many updates to documentation.
-
-## 0.26
-> released 2009-01-29
-
-* Fix for decrement on hash key
-* Fixed assert that was catching bad memset() call in host_reset()
-* Fix purge issue for blocked IO which has been stacked.
-
-## 0.25
-> released 2008-11-28
-
-* Jenkins HASH added.
-* Update of Murmur hash code
-* Support explicit weights (Robey Pointer, Evan Weaver)
-* Bugfix for ketama continuum (Robey Pointer)
-* New behavior MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY (Robey Pointer)
-* Don't ever call stats for weighting servers, because it is unstable.
-
-## 0.24
-> released 1970-01-01
-
-* Cleanup compile warnings.
-* Fix issues in partitioning by keys.
-* Fixed "fail case" to make sure when calling memcached_clone() no memcached_st is over written.
-* New memcached_server_by_key() method for finding a server from a key.
-* memcached_server_free() was added for freeing server structures.
-
-
-## 0.23
-> released 2008-09-07
-
-* Added strings.h header for Solaris 9
-* Solaris 64bit fix.
-* Support for weighted Ketama from Yin Chen.
-* Fix for Chinese
-* Fix for 0 length key to trigger bad key.
-* Added behaviors MEMCACHED_BEHAVIOR_SND_TIMEOUT, MEMCACHED_BEHAVIOR_RCV_TIMEOUT
-* Support for Binary Protocol added
-
-## 0.22
-> released 2008-07-14
-
-* Fix where master key was no being checked for "bad key"
-* Fixed bugs in stats output (thread output was wrong)
-* Clarified MEMCACHED_BAD_KEY_PROVIDED is return for bad prefix key.
-* Found a bug in Flags return (Jacek Ostrowski)
-* Fixed issue with compiling on Visual Studio
-
-## 0.21
-> released 2008-05-24
-
-* Change of char * to const char * for all key based functions.
-* New MEMCACHED_CALLBACK_PREFIX_KEY added. You can now create domains for values.
-* Fixed bug introducd in last version on memcp
-* Fix for death of file io to call shutdown()
-
-## 0.20
-> released 2008-05-05
-
-* New consistent distribution tests.
-* Found a memory leak when a server constantly fails.
-* Fix in watchpoint macro
-* Changed default timeout to 1 second for poll timeouts
-* Wheel uses less memory/dynamic allocation for size (no longer limited to 512 hosts by default.
-* memslap memory leak fix
-* Added Ketama distribution
-* Fix assert.h compile problem on CentOS
-
-## 0.19
-> released 2008-04-09
-
-* Documentation fix in libmemcached.
-* Fixed bug where sort was always occuring on hosts
-* Logic fix in branch prediction (thanks Jay!)
-* Read through cached support.
-* Fixed for cas by key operation.
-* Fix for memcached_server_st list structures to have correct count.
-* Added callback MEMCACHED_CALLBACK_DELETE_TRIGGER
-* Removed function call in favor of macro (aka cut out some instructions)
-
-
-## 0.18
-> released 2008-03-17
-
-* Fix plus tests for non-zero value objects and flags.
-* MEMCACHED_HASH_MURMUR added for murmur algorithm provided.
-* MEMCACHED_BEHAVIOR_RETRY_TIMEOUT added to keep connecting from looping on timeout.
-* gcc branch prediction optimizations
-* Refactored entire tree to make include files cleaner
-* Fixed leaked socket.
-
-## 0.17
-> released 2008-02-27
-
-* MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT added for connect timeout in non-block mode.
-* Incompatible change in memcached_behavior_set() api. We now use a uint64_t, instead of a pointer.
-* Fix for storage of values for zero.
-* memcached_server_cursor() function added to API for cycling through servers.
-
-## 0.16
-> released 2008-02-18
-
-* Work on the UDP protocol
-* Added get_by_key, set_by_key tests for C++ API
-* Fix for limit_maxbytes to be 64bit in stats
-* Added Atom Smasher test (scale baby, scale!)
-* Servers are now sorted, meaning that servers are now ordered so that clients with the same lists, will have same distribution. (Idea from Ross McFarland). MEMCACHED_BEHAVIOR_SORT_HOSTS was added to enable this support.
-* Added MEMCACHED_BAD_KEY_PROVIDED error for auto, set, and get operations. MEMCACHED_BEHAVIOR_VERIFY_KEY was added to enable this feature.
-* More error messages on command line tools.
-* Fixed bugs in memcached_cas() operator.
-* Fix to loop through interfaces
-
-## 0.15
-> released 2008-01-29
-
-* More work on the C++ API.
-* Bug fixes around block corner cases.
-* Slight performance increase in both read() and write().
-
-## 0.14
-> released 2008-01-22
-
-* For for bug found by Evan Weaver where increment() was not returning propper error of value was not found.
-* Fix for bad null pointer on flag by Toru Maesaka.
-* Refactor of all IO to just pass in the active server
-* Problem configuring (PKG_CHECK_MODULES) fixed by removal of "rpath" in support/libmemcached.pc.in (Thanks to Ross McFarland).
-* Added memcached_callback_get()/set()
-* First prototype of C++ interface
-* Updated docs for uint16_t changes in previous release
-
-## 0.13
-> released 2008-01-13
-
-* MEMCACHED_BEHAVIOR_USER_DATA added to store user pointer.
-* Fix for failure to connect to invalidate socket.
-* Patch from Marc Rossi to add --hash option for memcp, memrm, and memcat.
-* Kevin's patch for fixing EOF issues during a read.
-* Toru Maesaka patch for stats mismatch
-* Fix for when CRC return 0
-* Fixed uint16_t issues around flags. Turns out the documentation on the protocol was wrong.
-* Lingering socket fixes for FreeBSD.
-* Patches from Kevin Dalley for FreeBSD 4.0
-* Added multi delete functions.
-* All get key returns have C style null termination
-* If memcached_server_list_append is passed NULLs instead of pointers it returns NULL.
-* Added memcached_fetch_execute() method
-* Found a bug where memcached_fetch() was not null terminating the result value.
-* memcached_behavior() now has the ability to set "buffering" so that data is not automatically flushed.
-* Behavior change, buffered commands now return MEMCACHED_BUFFERED
-
-## 0.12
-> released 2007-12-11
-
-* Updates for consistent hashing
-* IPV6 support
-* Static allocation for hostname (performance)
-* Fixed bug where in non-block mode all data might not have been sent on close().
-* Refactor of memcached_get() to use common code.
-* Change in value fetch, MEMCACHED_END is now returned when keys are no longer in the pipe.
-* Fixed bug where key could be out of range of characters
-* Added _by_key() methods to allow partitioning of values to particular servers.
-* MEMCACHED_DEFAILT_TIMEOUT is now set to a non -1 value.
-* Performance improvements in get operations.
-
-## 0.11
-> released 2007-11-26
-
-* Added option to memcache_behavior_set() so that poll() can be timed out.
-* Fixed memory leak in case of using memcached_fetch_result() where no value was returned.
-* Bug fixed in memcached_connect() which would cause servers that did not need to be enabled to be enabled (performance issue).
-* Rewrote bounds checking code for get calls.
-* "make test" now starts its own memcached servers.
-* Added Hseih hash (MEMCACHED_HASH_HSIEH), which is showing about 7% performance over standard hash.
-
-## 0.10
-> released 2007-11-21
-
-* Added append binary test.
-* Added MEMCACHED_BEHAVIOR_CACHE_LOOKUPS behavior so that you can save on multiple DNS lookups.
-* Added CAS support, though this is optional and must be enabled during runtime.
-* Added the utility memerror to create human readable error strings from memcached errors (aka convert ints to strings)
-* Fixed type in MEMCACHED_HOST_LOOKUP_FAILURE
-* Fixed bug where hostname might not be null terminated
-* Moved to using gethostbyname_r() on Linux to solve thread safety issue
-* Added -rpath support for pkg-config
-* Documentation fix for hash setting using memcached_behavior_set()
-
-## 0.9
-> released 2007-11-15
-
-* fix for when no servers are definied.
-* different buffers are now kept for different connections to speed up async efforts
-* Modified increment/decrement functions to return uint64_t values
-* Fixed bug in cases where zero length keys were provided
-* Thread cleanup issue in memslap
-* No hostname lookup on reconnect
-* Fix for flag settings (was doing hex by accident!)
-* Support for 1.2.4 server additions "prepend" and "append" added.
-* Added memcached_version()... not sure if I will make this public or not.
-
-## 0.8
-> released 2007-11-05
-
-* Adding support for CRC hash method
-* Adding support for UNIX sockets
-* Added additional HASHing methods of FNV1_64,FNV1A_64, FNV1_32, FNV1A_32
-* Added pkgconfig support (PKG_CHECK_MODULES)
-* Fixed conflict with defined type in MySQL
-* Added memcached_result_st structure and functions to manipulate it.
-
-## 0.7
-> released 2007-10-30
-
-* Poved to poll() from select()
-* Fixes in internal string class for allocation of large numbers of strings.
-* memcached_mget() function now sends keys as it parses them instead of building strings as it goes.
-* Propper flush now for making sure we get all IO sent even when in non-block mode.
-* Added --enable-debug rule for configure
-* All asserts() removed (hey this is going into production!)
-
-
-## 0.6
-> released 2007-10-17
-
-* get value returns are now null terminated (request by Cal Heldenbrand)
-* Fixed connections for more hosts then two.
-* Rewrite of the read/write IO systems to handle different sorts of host failures.
-* Added man pages for all functions and tools
-* Raised buffer size for readinng/writing to 16K
-* You can now optionally set the socket size for recv/send via memached_behavior_set/get.
-
-## 0.5
-> released 2007-10-09
-
-* Ruby maintainer mentioned TCP_NODELAY patch he had added. Added this to C
- library as well. (Eric Hodel drbrain@segment7.net)
-* Added support script for set_benchmark
-* Updated memslap to allow testing of TCP_NODELAY
-* Updated memslap to support --flush (aka dump memcache servers before testing)
-* Fixed bug in multiple hosts not being activated
-* Added environmental variable MEMCACHED_SERVERS which can be used to set the servers list.
-* fixed memcached_stat method (and now memstat works)
-* server connect now happens on demand.
-* Help for all command line applications
-
-## 0.4
-> released 2007-10-03
-
-* Added buffered IO to write calls for keys
-* Added buffered IO for reads
-* memstat was broken (bad if/else on connect)
-* New non-blocking IO (not default yet). Mucho faster
-* Refactor of test system.
-* memslap crash solved
-
-## 0.3
-> released 2007-10-01
-
-* Jeff Fisher <guppy@techmonkeys.org> provided a spec file
-* Added "make rpm" around dist file
-* Added support for Solaris
-* Added support for DTrace
-* Fixed read to be recv and write to be send
-* Bug fix where memstat would core if no server was found
-* Added memslap tool (load generator)
-* Numerous bug fixes in library
-* Added calls to library for creating host lists (see text cases to understand how to use this).
-
-## 0.2
-> released 2007-09-27
-
-* First public version
--- /dev/null
+ChangeLog-1.1.md
\ No newline at end of file
-Copyright (c) 2011-2013 Brian Aker, DataDifferential, https://datadifferential.com/
+Copyright (c) 2006-2014 Brian Aker, DataDifferential, https://datadifferential.com/
Copyright (c) 2020 Michael Wallner, SmugMug Inc, https://smugmug.com/
All rights reserved.
if(NOT SPHINX_EXECUTABLE)
- message(WARNING "The sphinx-build command is required to build manpages.")
+ message(WARNING "The sphinx-build command is required to build documentation.")
else()
# MAN output directory
set(SPHINX_MAN_DIR "${SPHINX_BUILD_DIR}/man")
- configure_file(
- "${SPHINX_SOURCE_DIR}/conf.py.in"
- "${SPHINX_BUILD_DIR}/conf.py"
- @ONLY)
+ configure_file("conf.py.in" "conf.py" @ONLY)
+ add_subdirectory(source)
if(BUILD_DOCS_HTML)
add_custom_target(html
+ COMMAND
${SPHINX_EXECUTABLE}
-q -b html
-c "${SPHINX_BUILD_DIR}"
--- /dev/null
+# -*- coding: utf-8 -*-
+
+import sys, os
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#sys.path.insert(0, os.path.abspath('.'))
+
+
+# -- General configuration -----------------------------------------------------
+
+#needs_sphinx = '1.0'
+extensions = [@SPHINX_EXTENSIONS@]
+templates_path = ['_templates']
+source_suffix = ['.rst']
+master_doc = 'index'
+pygments_style = 'sphinx'
+
+primary_domain = 'cpp'
+default_role = 'any'
+
+project = u'libmemcached'
+version = '@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@'
+release = '@PROJECT_VERSION@'
+
+smartquotes = False
+m2r_parse_relative_links = True
+
+# -- Options for HTML output ---------------------------------------------------
+
+html_theme = '@SPHINX_THEME@'
+html_theme_options = {@SPHINX_THEME_OPTIONS@}
+html_domain_indices = False
+html_show_sourcelink = False
+html_copy_source = False
+#manpages_url = 'http://man7.org/linux/man-pages/man{section}/{page}.{section}.html'
+manpages_url = 'https://linux.die.net/man/{section}/{page}'
+
+html_context = {
+ 'display_github': True,
+ 'github_user': 'm6w6',
+ 'github_repo': 'libmemcached',
+ 'github_version': 'v1.x/docs/source/'
+}
+
+# -- Options for manual page output --------------------------------------------
+
+# Skip a separate AUTHOR section
+man_authors = []
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('libhashkit/index' ,'libhashkit' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_create' ,'hashkit_clone' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_create' ,'hashkit_create' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_create' ,'hashkit_free' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_create' ,'hashkit_is_allocated' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_function' ,'hashkit_function' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_function' ,'hashkit_get_distribution_function' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_function' ,'hashkit_get_function' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_function' ,'hashkit_set_custom_distribution_function',u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_function' ,'hashkit_set_custom_function' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_function' ,'hashkit_set_distribution_function' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_function' ,'hashkit_set_function' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_crc32' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_fnv1_32' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_fnv1_64' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_fnv1a_32' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_fnv1a_64' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_functions' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_hsieh' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_jenkins' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_md5' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_functions' ,'hashkit_murmur' ,u'libhashkit Documentation' ,man_authors,3),
+ ('libhashkit/hashkit_value' ,'hashkit_value' ,u'libhashkit Documentation' ,man_authors,3),
+
+ ('libmemcached' ,'libmemcached' ,u'C/C++ Client Library for memcached' ,man_authors,3),
+ ('libmemcached/configuration' ,'libmemcached_check_configuration' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/configuration' ,'libmemcached_configuration' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/configuration' ,'memcached' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/examples' ,'libmemcached_examples' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_analyze' ,'memcached_analyze' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_append' ,'memcached_append_by_key' ,u'Appending to or Prepending Data' ,man_authors,3),
+ ('libmemcached/memcached_append' ,'memcached_append' ,u'Appending to or Prepending Data' ,man_authors,3),
+ ('libmemcached/memcached_append' ,'memcached_prepend_by_key' ,u'Appending to or Prepending Data' ,man_authors,3),
+ ('libmemcached/memcached_append' ,'memcached_prepend' ,u'Appending to or Prepending Data' ,man_authors,3),
+ ('libmemcached/memcached_auto' ,'memcached_auto' ,u'Incrementing and Decrementing Values',man_authors,3),
+ ('libmemcached/memcached_auto' ,'memcached_decrement' ,u'Incrementing and Decrementing Values',man_authors,3),
+ ('libmemcached/memcached_auto' ,'memcached_decrement_with_initial' ,u'Incrementing and Decrementing Values',man_authors,3),
+ ('libmemcached/memcached_auto' ,'memcached_increment' ,u'Incrementing and Decrementing Values',man_authors,3),
+ ('libmemcached/memcached_auto' ,'memcached_increment_with_initial' ,u'Incrementing and Decrementing Values',man_authors,3),
+ ('libmemcached/memcached_behavior' ,'memcached_behavior_get' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_behavior' ,'memcached_behavior_set' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_behavior' ,'memcached_behavior' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_callback' ,'memcached_callback_get' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_callback' ,'memcached_callback_set' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_callback' ,'memcached_callback' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_cas' ,'memcached_cas_by_key' ,u'Storing and Replacing Data' ,man_authors,3),
+ ('libmemcached/memcached_cas' ,'memcached_cas' ,u'Atomic Compare and Swap' ,man_authors,3),
+ ('libmemcached/memcached_create' ,'memcached_clone' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_create' ,'memcached_create' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_create' ,'memcached_free' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_create' ,'memcached_servers_reset' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_delete' ,'memcached_delete_by_key' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_delete' ,'memcached_delete' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_dump' ,'memcached_dump' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_exist' ,'memcached_exist_by_key' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_exist' ,'memcached_exist' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_fetch' ,'memcached_fetch' ,u'Retrieving data from the server' ,man_authors,3),
+ ('libmemcached/memcached_flush_buffers' ,'memcached_flush_buffers' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_flush' ,'memcached_flush' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_generate_hash_value','memcached_generate_hash' ,u'Generating hash values directly' ,man_authors,3),
+ ('libmemcached/memcached_generate_hash_value','memcached_generate_hash_value' ,u'Generating hash values directly' ,man_authors,3),
+ ('libmemcached/memcached_get' ,'memcached_fetch_execute' ,u'Retrieving data from the server' ,man_authors,3),
+ ('libmemcached/memcached_get' ,'memcached_fetch_result' ,u'Retrieving data from the server' ,man_authors,3),
+ ('libmemcached/memcached_get' ,'memcached_get_by_key' ,u'Retrieving data from the server' ,man_authors,3),
+ ('libmemcached/memcached_get' ,'memcached_get' ,u'Retrieving data from the server' ,man_authors,3),
+ ('libmemcached/memcached_get' ,'memcached_mget_by_key' ,u'Retrieving data from the server' ,man_authors,3),
+ ('libmemcached/memcached_get' ,'memcached_mget_execute_by_key' ,u'Retrieving data from the server' ,man_authors,3),
+ ('libmemcached/memcached_get' ,'memcached_mget_execute' ,u'Retrieving data from the server' ,man_authors,3),
+ ('libmemcached/memcached_get' ,'memcached_mget' ,u'Retrieving data from the server' ,man_authors,3),
+ ('libmemcached/memcached_last_error' ,'memcached_last_error_errno' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_last_error' ,'memcached_last_error_message' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_last_error' ,'memcached_last_error' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_memory_allocators' ,'memcached_get_memory_allocators' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_memory_allocators' ,'memcached_memory_allocators' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_memory_allocators' ,'memcached_set_memory_allocators_context' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_memory_allocators' ,'memcached_set_memory_allocators' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_quit' ,'memcached_quit' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_result_st' ,'memcached_result_cas' ,u'Working with result sets' ,man_authors,3),
+ ('libmemcached/memcached_result_st' ,'memcached_result_create' ,u'Working with result sets' ,man_authors,3),
+ ('libmemcached/memcached_result_st' ,'memcached_result_flags' ,u'Working with result sets' ,man_authors,3),
+ ('libmemcached/memcached_result_st' ,'memcached_result_free' ,u'Working with result sets' ,man_authors,3),
+ ('libmemcached/memcached_result_st' ,'memcached_result_key_length' ,u'Working with result sets' ,man_authors,3),
+ ('libmemcached/memcached_result_st' ,'memcached_result_key_value' ,u'Working with result sets' ,man_authors,3),
+ ('libmemcached/memcached_result_st' ,'memcached_result_length' ,u'Working with result sets' ,man_authors,3),
+ ('libmemcached/memcached_result_st' ,'memcached_result_st' ,u'Working with result sets' ,man_authors,3),
+ ('libmemcached/memcached_result_st' ,'memcached_result_value' ,u'Working with result sets' ,man_authors,3),
+ ('libmemcached/memcached_return_t' ,'memcached_return_t' ,u'Return type values ' ,man_authors,3),
+ ('libmemcached/memcached_sasl' ,'memcached_destroy_sasl_auth_data' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_sasl' ,'memcached_get_sasl_callbacks' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_sasl' ,'memcached_sasl_set_auth_data' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_sasl' ,'memcached_sasl' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_sasl' ,'memcached_set_sasl_callbacks' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_servers' ,'memcached_server_add' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_servers' ,'memcached_server_add_unix_socket' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_servers' ,'memcached_server_count' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_servers' ,'memcached_server_cursor' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_servers' ,'memcached_server_list' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_servers' ,'memcached_server_push' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_servers' ,'memcached_server_st' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_servers' ,'memcached_servers' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_server_st' ,'memcached_server_list_append' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_server_st' ,'memcached_server_list_count' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_server_st' ,'memcached_server_list_free' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_server_st' ,'memcached_servers_parse' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_set_encoding_key' ,'memcached_set_encoding_key' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_set' ,'memcached_add_by_key' ,u'Storing and Replacing Data' ,man_authors,3),
+ ('libmemcached/memcached_set' ,'memcached_add' ,u'Storing and Replacing Data' ,man_authors,3),
+ ('libmemcached/memcached_set' ,'memcached_replace_by_key' ,u'Storing and Replacing Data' ,man_authors,3),
+ ('libmemcached/memcached_set' ,'memcached_replace' ,u'Storing and Replacing Data' ,man_authors,3),
+ ('libmemcached/memcached_set' ,'memcached_set_by_key' ,u'Storing and Replacing Data' ,man_authors,3),
+ ('libmemcached/memcached_set' ,'memcached_set' ,u'Storing and Replacing Data' ,man_authors,3),
+ ('libmemcached/memcached_stats' ,'memcached_stat_execute' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_stats' ,'memcached_stat_get_keys' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_stats' ,'memcached_stat_get_value' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_stats' ,'memcached_stat_servername' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_stats' ,'memcached_stats' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_stats' ,'memcached_stat' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_strerror' ,'memcached_strerror' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_touch' ,'memcached_touch_by_key' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_touch' ,'memcached_touch' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_user_data' ,'memcached_get_user_data' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_user_data' ,'memcached_set_user_data' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_user_data' ,'memcached_user_data' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_verbosity' ,'memcached_verbosity' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_version' ,'memcached_lib_version' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcached/memcached_version' ,'memcached_version' ,u'libmemcached Documentation' ,man_authors,3),
+
+ ('libmemcachedutil/index' ,'libmemcachedutil' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool_behavior_get' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool_behavior_set' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool_create' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool_destroy' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool_fetch' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool_pop' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool_push' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool_release' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool_st' ,u'libmemcached Documentation' ,man_authors,3),
+ ('libmemcachedutil/memcached_pool' ,'memcached_pool' ,u'libmemcached Documentation' ,man_authors,3),
+
+ ('bin/memcapable' , 'memcapable' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memcat' , 'memcat' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memcp' , 'memcp' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memdump' , 'memdump' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memerror' , 'memerror' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memflush' , 'memflush' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memrm' , 'memrm' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memaslap' , 'memaslap' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memslap' , 'memslap' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memstat' , 'memstat' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memexist' , 'memexist' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memparse' , 'memparse' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memping' , 'memping' , u'libmemcached Documentation' , man_authors, 1),
+ ('bin/memtouch' , 'memtouch' , u'libmemcached Documentation' , man_authors, 1),
+ ]
+
+rst_prolog = """
+.. |libhashkit_version| replace:: @LIBHASHKIT_VERSION_MAJOR@.@LIBHASHKIT_VERSION_MINOR@
+.. |libmemcached_version| replace:: @LIBMEMCACHED_VERSION_MAJOR@.@LIBMEMCACHED_VERSION_MINOR@
+"""
+
+@SPHINX_CONF_APPEND@
--- /dev/null
+find_program(M2R m2r)
+
+if(M2R)
+ file(GLOB CHANGELOGS "${CMAKE_SOURCE_DIR}/ChangeLog-*.md")
+ message("-- Checking ChangeLogs ...")
+ foreach(CHANGELOG IN LISTS CHANGELOGS)
+ string(REGEX REPLACE "\\.md$" ".rst" FILEPATH ${CHANGELOG})
+ get_filename_component(FILENAME ${FILEPATH} NAME)
+
+ set(RESTFILE "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}")
+ if(${CHANGELOG} IS_NEWER_THAN ${RESTFILE})
+ message("-- Processing ${CHANGELOG} ...")
+ execute_process(
+ COMMAND ${M2R} --overwrite --parse-relative-links ${CHANGELOG}
+ RESULTS_VARIABLE M2R_STATUS
+ )
+ if(M2R_STATUS)
+ message(" Failed to update ${RESTFILE}: ${M2R_STATUS}")
+ else()
+ file(RENAME ${FILEPATH} ${RESTFILE} )
+ message(" Updated ${RESTFILE}: OK")
+ endif()
+ endif()
+ endforeach()
+endif()
--- /dev/null
+
+ChangeLog v0.x
+==============
+
+v 0.53
+------
+
+..
+
+ released 2011-09-27
+
+
+
+* Fix for FreeBSD/OpenBSD and -lm
+* Added memcached_exist()
+* Fix for memory when using config test.
+* CLI gained --quiet
+
+v 0.52
+------
+
+..
+
+ released 2011-09-12
+
+
+
+* Build fixes for Ubuntu/Suse.
+* Fixes for OSX Lion.
+* Bug fix for looping back through dns lookups under certain failures.
+* Fixes related to dead server failures.
+
+v 0.51
+------
+
+..
+
+ released 2011-07-21
+
+
+
+* memcached_callback_set() now takes its data argument as const
+* Update to tests.
+* Fix in parser for port number.
+
+v 0.50
+------
+
+..
+
+ released 2011-06-20
+
+
+
+* Updates to C++ interface
+* Custom free allocators need to now check for value before calling free.
+* memcached_fetch_result() now uses the internal result when available (about 25 to 50% faster).
+* Fix for stats structure.
+* Updates to documentation.
+* memcached_fetch_result() now uses the internal result when available (about 25 to 50% faster).
+
+v 0.49
+------
+
+..
+
+ released 2011-04-14
+
+
+
+* Fix calls to auto methods so that if value is not passed in nothing bad happens.
+* New parser calls for generating memcached_st objects.
+* New error system.
+* New flow control for messages means faster get/set calls.
+* Added new documentation system.
+* A behavior change has been now made that if you specify a weight for any server, we enable the weight flag and do weight balancing.
+* Added MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS to simplify the setting of AUTO REJECT for servers.
+
+v 0.48
+------
+
+..
+
+ released 2011-03-16
+
+
+
+* Fix memory leak in server parse.
+* Move test framework out to be its own library (easier to work with Gearman).
+
+v 0.47
+------
+
+..
+
+ released 2011-02-24
+
+
+
+* Additional fixes for OpenBSD.
+* Bug fix 677609, 456080.
+* SIGPIPE fix for Linux send().
+* memcapable can now test ascii or binary based on flags.
+* Additional build fixes for SASL.
+
+v 0.46
+------
+
+..
+
+ released 2011-02-14
+
+
+
+* Fixes a number of corner case bugs.
+* Fixes related to OpenBSD.
+* Better testing for protocol version.
+* Removes special case infinite wait on blocking setup.
+
+v 0.45
+------
+
+..
+
+ released 2011-02-09
+
+
+
+* Add support for systemtap
+
+v 0.44
+------
+
+..
+
+ released 2010-09-23
+
+
+
+* Windows bug fixes.
+* Hudson port support in test harness.
+* Improved portability of test hanrness.
+* SASL fixes.
+
+v 0.43
+------
+
+..
+
+ released 2010-07-28
+
+
+
+* Added --args to memstat so that a greater range of values can be returned.
+* Prelimanary support for Windows.
+* memcached_stat_execute() merged.
+
+v 0.42
+------
+
+..
+
+ released 2010-07-06
+
+
+
+* Mistake in libtool caused issue with library version
+
+v 0.41
+------
+
+..
+
+ released 2010-06-30
+
+
+
+* Added --file for memcat.
+* Added limemcached_ping() to libmemcached_util
+* Bugfix for some cases where connect would have issues with timeout.
+* Wrong value for errno given as error on an IO failure inside of poll.
+* Bug fix for issue where multiple interfaces with bad DNS were not being caught.
+
+v 0.40
+------
+
+..
+
+ released 2010-04-23
+
+
+
+* Placed retry logic in for busted resolvers
+* Add an ignore for SIGPIPE to solve OSX issues.
+* A couple of fixed for memcached_light server.
+* Updated to debug mode to track io_wait
+
+v 0.39
+------
+
+..
+
+ released 2010-04-06
+
+
+
+* Add support for prefix keys to binary protocol.
+* Remove the undocumented call memcached_server_remove().
+* The undocumented call memcached_server_by_key() now returns const.
+* memcached_server_error_reset() has been deprecated.
+* memcached_server_list() has been deprecated. Use memcached_server_cursor() to walk the servers found in a memcached_st() structure.
+* memcached_verbosity() can now be run concurrently with other operations.
+* SASL support.
+* Fixes memory leak found in EJECT HOSTS.
+
+v 0.38
+------
+
+..
+
+ released 2010-02-10
+
+
+
+* C++ interface for libhashkit.
+* Modified memcached_set_memory_allocators() so that it requires a context pointer.
+* memcached_clone() now runs 5 times faster.
+* Functions used for callbacks are now given const memcached_st.
+* Added MEMCACHED_BEHAVIOR_CORK.
+* memslap now creates a configuration file at ~/.memslap.cnf
+* memcached_purge() now calls any callbacks registered during get execution.
+* Many fixes to memslap.
+* Updates for memcapable.
+* Compile fixes for OpenBSD.
+* Fix for possible recursive decent on IO failure.
+
+v 0.37
+------
+
+..
+
+ released 2010-01-12
+
+
+
+* Fixed build for libhashkit.
+* Fixed install path regression.
+* Modified RPM to strict check install.
+* Added documentation for memcached_server_cursor();
+* Added memcached_servers_reset().
+* Modified memcached_st to remove dead cursor_server member.
+
+v 0.36
+------
+
+..
+
+ released 2010-01-07
+
+
+
+* Merged in new memslap utility.
+* All of constants.h has been updated to match style (all old identifiers continue to work).
+* Added first pass for libhashkit.
+* Updated test Framework/extended tests.
+* Random read support during replication added.
+* Modified use_sort so that the option can be applied to any distribution type.
+* We removed the MEMCACHED_BEHAVIOR_KETAMA_COMPAT_MODE added in 0.35. Instead use memcached_behavior_set_distribution().
+
+v 0.35
+------
+
+..
+
+ released 2009-11-09
+
+
+
+* Added support for by_key operations for inc/dec methods.
+* Added mget test to memslap.
+* Support for compatible ketama for SpyMemcached
+* Update C++ interface.
+* Fix for memcp
+
+v 0.34
+------
+
+..
+
+ released 2009-10-13
+
+
+
+* Added support for setting behavior flags on a connection pool.
+* Don't increment server_failure_counter on normal disconnects.
+* Added prototype for a callback based protocol parser (server side) with examples so that you could let your own application speak the memcached protocol
+* Updated memcapable to test ASCII protocol.
+* Changed behavior so that server can be removed at first sign of failure.
+* Added memcached_server_get_last_disconnect() call
+
+v 0.33
+------
+
+..
+
+ released 2009-09-23
+
+
+
+* Added memcapable to test servers for binary compatibility.
+* Updated C++ interface. Added basic support for C++ exceptions. Added multiple constructors the memcached client object. The C++ interface now takes parameters which are C++ types (such as std::string).
+* Several bug fixes for binary protocol support.
+* Fixed crashing issue with dumping from memcachd server (server internals were changed without documenting change).
+
+v 0.32
+------
+
+..
+
+ released 2009-09-15
+
+
+
+* Change of behavior where linger is only modified for no-block and then it is set to zero.
+* Added Twitter's memcached_server_error() functions.
+* Fix for OSX compiles in development builds.
+* Updated C++ interface.
+* Updated memcached_mget and memcached_mget_by_key to take a size_t as a parameter instead of an unsigned int for number_of_keys.
+
+v 0.31
+------
+
+..
+
+ released 2009-07-10
+
+
+
+* Added support or HA via replication.
+* malloc() removed for server key usage.
+* Update build system.
+* Added support for memcached_set_memory_allocators().
+* Fixed bug in configure.ac for have_htoll.
+
+v 0.30
+------
+
+..
+
+ released 2009-06-01
+
+
+
+* Added memcachd_dump command (and framework for memdump tool).
+* Realigned all structures to remove padding (and line up important bits for 64bit caches.
+* Remove some of sprintf() in storage calls().
+* Removed printf() in stat call for unknown stat member.
+* memcached_generate_hash() function added.
+* Added tests to make sure all hash functions are stable.
+
+v 0.29
+------
+
+..
+
+ released 2009-05-19
+
+
+
+* Fixed malloc usage to calloc for spots where we need zero filled memory.
+* All code warnings now treated as errors.
+* Fixes for debian packaging.
+* Added new pooling mechanism.
+* MEMCACHED_BEHAVIOR_NO_BLOCK no longer also sets MEMCACHED_BEHAVIOR_BUFFER_REQUESTS.
+* Updated generic rpm.
+
+v 0.28
+------
+
+..
+
+ released 2009-04-15
+
+
+
+* Fixed bug in init sructure (reapplied)
+* Fixed bug in get/set by key (nikkhils@gmail.com)
+
+v 0.27
+------
+
+..
+
+ released 2009-03-30
+
+
+
+* Added new UDP fire-forget mode.
+* Reworked performance for mget() to better make use of async protocol
+* Cleaned up execution of fetch (just one set of code now)
+* Fixed Jenkin's for big endian hosts.
+* Updates for memstat to determine network latency.
+* Updates for binary protocol.
+* Many updates to documentation.
+
+v 0.26
+------
+
+..
+
+ released 2009-01-29
+
+
+
+* Fix for decrement on hash key
+* Fixed assert that was catching bad memset() call in host_reset()
+* Fix purge issue for blocked IO which has been stacked.
+
+v 0.25
+------
+
+..
+
+ released 2008-11-28
+
+
+
+* Jenkins HASH added.
+* Update of Murmur hash code
+* Support explicit weights (Robey Pointer, Evan Weaver)
+* Bugfix for ketama continuum (Robey Pointer)
+* New behavior MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY (Robey Pointer)
+* Don't ever call stats for weighting servers, because it is unstable.
+
+v 0.24
+------
+
+..
+
+ released 2008-09-16
+
+
+
+* Cleanup compile warnings.
+* Fix issues in partitioning by keys.
+* Fixed "fail case" to make sure when calling memcached_clone() no memcached_st is over written.
+* New memcached_server_by_key() method for finding a server from a key.
+* memcached_server_free() was added for freeing server structures.
+
+v 0.23
+------
+
+..
+
+ released 2008-09-07
+
+
+
+* Added strings.h header for Solaris 9
+* Solaris 64bit fix.
+* Support for weighted Ketama from Yin Chen.
+* Fix for Chinese
+* Fix for 0 length key to trigger bad key.
+* Added behaviors MEMCACHED_BEHAVIOR_SND_TIMEOUT, MEMCACHED_BEHAVIOR_RCV_TIMEOUT
+* Support for Binary Protocol added
+
+v 0.22
+------
+
+..
+
+ released 2008-07-14
+
+
+
+* Fix where master key was no being checked for "bad key"
+* Fixed bugs in stats output (thread output was wrong)
+* Clarified MEMCACHED_BAD_KEY_PROVIDED is return for bad prefix key.
+* Found a bug in Flags return (Jacek Ostrowski)
+* Fixed issue with compiling on Visual Studio
+
+v 0.21
+------
+
+..
+
+ released 2008-05-24
+
+
+
+* Change of char * to const char * for all key based functions.
+* New MEMCACHED_CALLBACK_PREFIX_KEY added. You can now create domains for values.
+* Fixed bug introducd in last version on memcp
+* Fix for death of file io to call shutdown()
+
+v 0.20
+------
+
+..
+
+ released 2008-05-05
+
+
+
+* New consistent distribution tests.
+* Found a memory leak when a server constantly fails.
+* Fix in watchpoint macro
+* Changed default timeout to 1 second for poll timeouts
+* Wheel uses less memory/dynamic allocation for size (no longer limited to 512 hosts by default.
+* memslap memory leak fix
+* Added Ketama distribution
+* Fix assert.h compile problem on CentOS
+
+v 0.19
+------
+
+..
+
+ released 2008-04-09
+
+
+
+* Documentation fix in libmemcached.
+* Fixed bug where sort was always occuring on hosts
+* Logic fix in branch prediction (thanks Jay!)
+* Read through cached support.
+* Fixed for cas by key operation.
+* Fix for memcached_server_st list structures to have correct count.
+* Added callback MEMCACHED_CALLBACK_DELETE_TRIGGER
+* Removed function call in favor of macro (aka cut out some instructions)
+
+v 0.18
+------
+
+..
+
+ released 2008-03-17
+
+
+
+* Fix plus tests for non-zero value objects and flags.
+* MEMCACHED_HASH_MURMUR added for murmur algorithm provided.
+* MEMCACHED_BEHAVIOR_RETRY_TIMEOUT added to keep connecting from looping on timeout.
+* gcc branch prediction optimizations
+* Refactored entire tree to make include files cleaner
+* Fixed leaked socket.
+
+v 0.17
+------
+
+..
+
+ released 2008-02-27
+
+
+
+* MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT added for connect timeout in non-block mode.
+* Incompatible change in memcached_behavior_set() api. We now use a uint64_t, instead of a pointer.
+* Fix for storage of values for zero.
+* memcached_server_cursor() function added to API for cycling through servers.
+
+v 0.16
+------
+
+..
+
+ released 2008-02-18
+
+
+
+* Work on the UDP protocol
+* Added get_by_key, set_by_key tests for C++ API
+* Fix for limit_maxbytes to be 64bit in stats
+* Added Atom Smasher test (scale baby, scale!)
+* Servers are now sorted, meaning that servers are now ordered so that clients with the same lists, will have same distribution. (Idea from Ross McFarland). MEMCACHED_BEHAVIOR_SORT_HOSTS was added to enable this support.
+* Added MEMCACHED_BAD_KEY_PROVIDED error for auto, set, and get operations. MEMCACHED_BEHAVIOR_VERIFY_KEY was added to enable this feature.
+* More error messages on command line tools.
+* Fixed bugs in memcached_cas() operator.
+* Fix to loop through interfaces
+
+v 0.15
+------
+
+..
+
+ released 2008-01-29
+
+
+
+* More work on the C++ API.
+* Bug fixes around block corner cases.
+* Slight performance increase in both read() and write().
+
+v 0.14
+------
+
+..
+
+ released 2008-01-22
+
+
+
+* For for bug found by Evan Weaver where increment() was not returning propper error of value was not found.
+* Fix for bad null pointer on flag by Toru Maesaka.
+* Refactor of all IO to just pass in the active server
+* Problem configuring (PKG_CHECK_MODULES) fixed by removal of "rpath" in support/libmemcached.pc.in (Thanks to Ross McFarland).
+* Added memcached_callback_get()/set()
+* First prototype of C++ interface
+* Updated docs for uint16_t changes in previous release
+
+v 0.13
+------
+
+..
+
+ released 2008-01-13
+
+
+
+* MEMCACHED_BEHAVIOR_USER_DATA added to store user pointer.
+* Fix for failure to connect to invalidate socket.
+* Patch from Marc Rossi to add --hash option for memcp, memrm, and memcat.
+* Kevin's patch for fixing EOF issues during a read.
+* Toru Maesaka patch for stats mismatch
+* Fix for when CRC return 0
+* Fixed uint16_t issues around flags. Turns out the documentation on the protocol was wrong.
+* Lingering socket fixes for FreeBSD.
+* Patches from Kevin Dalley for FreeBSD 4.0
+* Added multi delete functions.
+* All get key returns have C style null termination
+* If memcached_server_list_append is passed NULLs instead of pointers it returns NULL.
+* Added memcached_fetch_execute() method
+* Found a bug where memcached_fetch() was not null terminating the result value.
+* memcached_behavior() now has the ability to set "buffering" so that data is not automatically flushed.
+* Behavior change, buffered commands now return MEMCACHED_BUFFERED
+
+v 0.12
+------
+
+..
+
+ released 2007-12-11
+
+
+
+* Updates for consistent hashing
+* IPV6 support
+* Static allocation for hostname (performance)
+* Fixed bug where in non-block mode all data might not have been sent on close().
+* Refactor of memcached_get() to use common code.
+* Change in value fetch, MEMCACHED_END is now returned when keys are no longer in the pipe.
+* Fixed bug where key could be out of range of characters
+* Added _by_key() methods to allow partitioning of values to particular servers.
+* MEMCACHED_DEFAILT_TIMEOUT is now set to a non -1 value.
+* Performance improvements in get operations.
+
+v 0.11
+------
+
+..
+
+ released 2007-11-26
+
+
+
+* Added option to memcache_behavior_set() so that poll() can be timed out.
+* Fixed memory leak in case of using memcached_fetch_result() where no value was returned.
+* Bug fixed in memcached_connect() which would cause servers that did not need to be enabled to be enabled (performance issue).
+* Rewrote bounds checking code for get calls.
+* "make test" now starts its own memcached servers.
+* Added Hseih hash (MEMCACHED_HASH_HSIEH), which is showing about 7% performance over standard hash.
+
+v 0.10
+------
+
+..
+
+ released 2007-11-21
+
+
+
+* Added append binary test.
+* Added MEMCACHED_BEHAVIOR_CACHE_LOOKUPS behavior so that you can save on multiple DNS lookups.
+* Added CAS support, though this is optional and must be enabled during runtime.
+* Added the utility memerror to create human readable error strings from memcached errors (aka convert ints to strings)
+* Fixed type in MEMCACHED_HOST_LOOKUP_FAILURE
+* Fixed bug where hostname might not be null terminated
+* Moved to using gethostbyname_r() on Linux to solve thread safety issue
+* Added -rpath support for pkg-config
+* Documentation fix for hash setting using memcached_behavior_set()
+
+v 0.9
+-----
+
+..
+
+ released 2007-11-15
+
+
+
+* fix for when no servers are definied.
+* different buffers are now kept for different connections to speed up async efforts
+* Modified increment/decrement functions to return uint64_t values
+* Fixed bug in cases where zero length keys were provided
+* Thread cleanup issue in memslap
+* No hostname lookup on reconnect
+* Fix for flag settings (was doing hex by accident!)
+* Support for 1.2.4 server additions "prepend" and "append" added.
+* Added memcached_version()... not sure if I will make this public or not.
+
+v 0.8
+-----
+
+..
+
+ released 2007-11-05
+
+
+
+* Adding support for CRC hash method
+* Adding support for UNIX sockets
+* Added additional HASHing methods of FNV1_64,FNV1A_64, FNV1_32, FNV1A_32
+* Added pkgconfig support (PKG_CHECK_MODULES)
+* Fixed conflict with defined type in MySQL
+* Added memcached_result_st structure and functions to manipulate it.
+
+v 0.7
+-----
+
+..
+
+ released 2007-10-30
+
+
+
+* Poved to poll() from select()
+* Fixes in internal string class for allocation of large numbers of strings.
+* memcached_mget() function now sends keys as it parses them instead of building strings as it goes.
+* Propper flush now for making sure we get all IO sent even when in non-block mode.
+* Added --enable-debug rule for configure
+* All asserts() removed (hey this is going into production!)
+
+v 0.6
+-----
+
+..
+
+ released 2007-10-17
+
+
+
+* get value returns are now null terminated (request by Cal Heldenbrand)
+* Fixed connections for more hosts then two.
+* Rewrite of the read/write IO systems to handle different sorts of host failures.
+* Added man pages for all functions and tools
+* Raised buffer size for readinng/writing to 16K
+* You can now optionally set the socket size for recv/send via memached_behavior_set/get.
+
+v 0.5
+-----
+
+..
+
+ released 2007-10-09
+
+
+
+* Ruby maintainer mentioned TCP_NODELAY patch he had added. Added this to C
+ library as well. (Eric Hodel drbrain@segment7.net)
+* Added support script for set_benchmark
+* Updated memslap to allow testing of TCP_NODELAY
+* Updated memslap to support --flush (aka dump memcache servers before testing)
+* Fixed bug in multiple hosts not being activated
+* Added environmental variable MEMCACHED_SERVERS which can be used to set the servers list.
+* fixed memcached_stat method (and now memstat works)
+* server connect now happens on demand.
+* Help for all command line applications
+
+v 0.4
+-----
+
+..
+
+ released 2007-10-03
+
+
+
+* Added buffered IO to write calls for keys
+* Added buffered IO for reads
+* memstat was broken (bad if/else on connect)
+* New non-blocking IO (not default yet). Mucho faster
+* Refactor of test system.
+* memslap crash solved
+
+v 0.3
+-----
+
+..
+
+ released 2007-10-01
+
+
+
+* Jeff Fisher guppy@techmonkeys.org provided a spec file
+* Added "make rpm" around dist file
+* Added support for Solaris
+* Added support for DTrace
+* Fixed read to be recv and write to be send
+* Bug fix where memstat would core if no server was found
+* Added memslap tool (load generator)
+* Numerous bug fixes in library
+* Added calls to library for creating host lists (see text cases to understand how to use this).
+
+v 0.2
+-----
+
+..
+
+ released 2007-09-27
+
+
+
+* First public version
--- /dev/null
+
+ChangeLog v1.0
+==============
+
+v 1.0.18
+--------
+
+..
+
+ released 2014-02-09
+
+
+
+* MEMCACHED_BEHAVIOR_RETRY_TIMEOUT can now be set to zero.
+* Numerous bug fixes.
+
+v 1.0.17
+--------
+
+..
+
+ released 2013-04-03
+
+
+
+* Remove c++ namespace that was being exposed (the API should be plug compatible)..
+* Fix cases where --servers wasn't behaving the same in all clients.
+
+v 1.0.16
+--------
+
+..
+
+ released 2013-02-01
+
+
+
+* Added support to do two part shutdown of socket.
+* Fixes for Fedora 18.
+* Fix for binary memcached_touch()
+
+v 1.0.15
+--------
+
+..
+
+ released 2012-12-17
+
+
+
+* Added support for Murmur3 (HASHKIT_HASH_MURMUR3)
+* Portability fixes.
+
+v 1.0.14
+--------
+
+..
+
+ released 2012-11-14
+
+
+
+* CLIENT_ERROR fixed to not be treated as a fatal error.
+* Compiler fixes for older Ubuntu releases.
+
+v 1.0.13
+--------
+
+..
+
+ released 2012-10-19
+
+
+
+* Fix bug that caused version string to not be exported correctly.
+
+v 1.0.12
+--------
+
+..
+
+ released 2012-10-09
+
+
+
+* Added memcached_result_take_value().
+* Added ax_libmemcached.m4
+
+v 1.0.11
+--------
+
+..
+
+ released 2012-09-17
+
+
+
+* Removed custom version of memcached.
+* Updated hardening rules.
+* Fixed a case where the return error from a socket connection differred from that of a TCP/IP socket.
+
+v 1.0.10
+--------
+
+..
+
+ released 2012-07-30
+
+
+
+* --disable-assert has been removed from configure, and --enable-assert has been added in its place.
+* Compiling fixes for Clang on OSX Mountain Lion.
+
+v 1.0.9
+-------
+
+..
+
+ released 2012-07-05
+
+
+
+* Faster close on socket.
+* Instance allocation is now seperated from server interface.
+ This should allow for a better preservation of ABI compliance from now on.
+* Fix close on exec bug.
+* Numerous other bug fixes.
+
+v 1.0.8
+-------
+
+..
+
+ released 2012-05-22
+
+
+
+* Added support for setting options via ENV variable LIBMEMCACHED
+* Fix corner case on last used result.
+
+v 1.0.7
+-------
+
+..
+
+ released 2012-04-28
+
+
+
+* Add API call for exist calls.
+* Update all license files to be BSD.
+
+v 1.0.6
+-------
+
+..
+
+ released 2012-04-08
+
+
+
+* Fixes for gcc 4.7, lp:961812
+* Fix for restart issue that happens under testing.
+* Fix for lp:962815.
+* Support for transparent AES encryption.
+
+v 1.0.5
+-------
+
+..
+
+ released 2012-03-14
+
+
+
+* Fixes for OSX.
+* Version is now parsed directly in the parser, which makes buffered operations now work with it..
+* memstat has been extended so that it can be used to find the version of the server.
+* Update documentation.
+* Fixes for compile issues on Debian and Ubuntu
+
+v 1.0.4
+-------
+
+..
+
+ released 2012-01-27
+
+
+
+* Fix for memcached_dump().
+* Additional testing for memcached_stat_execute().
+
+v 1.0.3
+-------
+
+..
+
+ released 2012-01-09
+
+
+
+* Increased size of sort buffer used during Ketama.
+* Added support for new behavior to handle dead servers.
+* Overall haul of UDP IO.
+* Fixed C compile issue with memcached_exist()
+* Numerous bug fixes.
+* Clang support for OSX.
+* All commands now using vector send support.
+
+v 1.0.2
+-------
+
+..
+
+ released 2011-10-24
+
+
+
+* Dropped libmemcached/memcached_util.h (undocumented header file)
+* Added memcached_touch() and memcached_touch_by_key()
+* UDP support restructured to toggle on a complete memcached_st structure.
+
+----
+
+See :doc:`ChangeLog-0 <./ChangeLog-0>` for changes prior v1.0.
--- /dev/null
+.. role:: raw-html-m2r(raw)
+ :format: html
+
+
+ChangeLog v1.1
+==============
+
+v 1.1.0
+-------
+
+**NOTE:**\ :raw-html-m2r:`<br>`
+This is a bug fix release, not a feature release. The minor version number
+was incremented due to the following changes:
+
+
+* Ported build system to CMake.
+* Ported test suite to Catch2.
+* Build requires C++11 compiler support.
+* Tests require C++17 compiler support.
+* Moved the project from launchpad to github:
+
+ * Source: https://github.com/m6w6/libmemcached
+ * Documentation: https://m6w6.github.io/libmemcached
+ * Continuous Integration:
+
+ * Github: https://github.com/m6w6/libmemcached/actions (Linux, MacOS **·** amd64)
+ * Travis: https://travis-ci.org/m6w6/libmemcached (Linux **·** arm64, ppc64le, s390x)
+ * Cirrus: https://cirrus-ci.com/m6w6/libmemcached (FreeBSD **·** amd64)
+
+..
+
+ released YYYY-MM-DD
+
+
+
+* Fix build failure due to comparison of incompatible types in bin/memflush and bin/memstat.
+* Fix wrong type of memcached_instance_st::server_timeout_counter_query_id from uint32_t to uint64_t.
+* Fix memcached_dump():
+ returned MEMCACHED_CLIENT_ERROR on request to dump illegal slab id.
+* Fix bin/memcapable:
+ failed with "No hostname was provided" when providing a hostname.
+* Fix hashkit/murmur and hashkit/murur3:
+ undefined behavior on platforms requiring aligned access.
+* Fix Memcache::set():
+ possible subscription of empty vector.
+* Fix libmemcached_util_version_check().
+* Fix ketama/consistent hashing:
+ crash on reallocation of continuum.
+* Fix `gh #90 <https://github.com/m6w6/libmemcached/issues/90>`_\ :
+ Build fails on Darwin.
+* Fix `gh #83 <https://github.com/m6w6/libmemcached/issues/83>`_\ :
+ memcp waits forever if file no found.
+* Fix `gh #80 <https://github.com/m6w6/libmemcached/issues/80>`_\ :
+ memparse docs.
+* Fix `gh #72 <https://github.com/m6w6/libmemcached/issues/72>`_
+ and `gh #47 <https://github.com/m6w6/libmemcached/issues/47>`_\ :
+ memcached_return_t docs.
+* Fix `gh #62 <https://github.com/m6w6/libmemcached/issues/62>`_\ :
+ uint32_t overflow cause busy loop.
+* Removed restriction of UDP+IPv6.
+* Fix SERVER_ERROR_MEMORY_ALLOCATION_FAILURE:
+ recognize more strings returned by the server.
+* Fix `gh #13 <https://github.com/m6w6/libmemcached/issues/13>`_\ :
+ reset continuum counter after freeing them.
+* Fix `gh #14 <https://github.com/m6w6/libmemcached/issues/14>`_
+ and `gh #17 <https://github.com/m6w6/libmemcached/issues/17>`_\ :
+ SASL: AUTH_CONTINUE was considered a failure and caused IO reset.
+* Fix `gh #25 <https://github.com/m6w6/libmemcached/issues/25>`_\ :
+ hashkit/murmur3 unavailable.
+* Fix missing handling of EAGAIN for non-blocking unix domain socket.
+* Fix `gh #35 <https://github.com/m6w6/libmemcached/issues/35>`_\ :
+ handling of BEHAVIOR_REMOVE_FAILED_SERVERS.
+* Fix `gh #41 <https://github.com/m6w6/libmemcached/issues/41>`_\ :
+ ensure stable sort on continuum host key collision.
+* Fix `gh #42 <https://github.com/m6w6/libmemcached/issues/42>`_\ :
+ MEMCACHED_MAX_BUFFER docs.
+* Fix `gh #43 <https://github.com/m6w6/libmemcached/issues/43>`_\ :
+ libmemcached_configuration docs.
+* Fix `gh #46 <https://github.com/m6w6/libmemcached/issues/46>`_\ :
+ clarification on millisecond timeout docs.
+* Fix `gh #50 <https://github.com/m6w6/libmemcached/issues/50>`_\ :
+ memcached_fetch_result() can return previously returned data.
+* Fix `gh #53 <https://github.com/m6w6/libmemcached/issues/53>`_\ :
+ stack overflow in memcached_fetch_result().
+* Fix `gh #57 <https://github.com/m6w6/libmemcached/issues/57>`_\ :
+ include <inttypes.h> vs :raw-html-m2r:`<cinttypes>`
+* Fix `gh #58 <https://github.com/m6w6/libmemcached/issues/58>`_\ :
+ more specific error messages when connect() fails.
+* Fix `gh #59 <https://github.com/m6w6/libmemcached/issues/59>`_\ :
+ bin/memcat: typo in "No servers provied".
+* Fix `gh #77 <https://github.com/m6w6/libmemcached/issues/77>`_\ :
+ undeclared UINT64_C in ketama.cc.
+* Fix `gh #12 <https://github.com/m6w6/libmemcached/issues/12>`_\ :
+ never reconnects after connection reset (binary protocol).
+* Fix `gh #49 <https://github.com/m6w6/libmemcached/issues/49>`_\ :
+ assertion memcached_failed(rc) failed in memcached_send_ascii().
+* Fix `gh #67 <https://github.com/m6w6/libmemcached/issues/67>`_\ :
+ get returns NOTFOUND on timeout.
+* Fix `gh #76 <https://github.com/m6w6/libmemcached/issues/76>`_\ :
+ memcached_touch() crashes when expiration=-1 (ASCII only).
+* Fix `gh #23 <https://github.com/m6w6/libmemcached/issues/23>`_\ :
+ build fails with bison 2.3.
+* Fix memaslap: build fails with newer compiler versions.
+* Fix usage of strerror_r() implementations returning pointer to char.
+* Fix pipelining commands with memcached >= 1.6.
+* Fixed memcached_stat_get_value(): buffer overflow.
+* Fix memcached_stat(): undefined behavior due to unintialized memcached_return_t.
+* Fix SASL tests: requires SASL_PWDB_CONF.
+* Fix bin/memaslap to idnentify itself as memaslap instead of memslap.
+* Fix bin/memcapable to work with memcached >= 1.6.
+* Fix murmur and murmur3 hashes on big endian platforms.
+* Fix `gh #82 <https://github.com/m6w6/libmemcached/issues/82>`_\ ,
+ `gh #64 <https://github.com/m6w6/libmemcached/issues/64>`_ and
+ `gh #21 <https://github.com/m6w6/libmemcached/issues/21>`_\ :
+ clarify documentation on replication.
+
+----
+
+See :doc:`ChangeLog-1.0 <./ChangeLog-1.0>` for changes prior v1.1.
--- /dev/null
+Change Logs
+===========
+
+.. toctree::
+
+ ChangeLog-1.1
+
+.. toctree::
+ :maxdepth: 1
+
+ ChangeLog-1.0
+ ChangeLog-0
+++ /dev/null
-# -*- coding: utf-8 -*-
-
-import sys, os
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
-
-
-# -- General configuration -----------------------------------------------------
-
-#needs_sphinx = '1.0'
-extensions = [@SPHINX_EXTENSIONS@]
-templates_path = ['_templates']
-source_suffix = '.rst'
-master_doc = 'index'
-pygments_style = 'sphinx'
-
-primary_domain = 'cpp'
-default_role = 'any'
-
-project = u'libmemcached'
-version = '@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@'
-release = '@PROJECT_VERSION@'
-
-smartquotes = False
-
-# -- Options for HTML output ---------------------------------------------------
-
-html_theme = '@SPHINX_THEME@'
-html_theme_options = {@SPHINX_THEME_OPTIONS@}
-html_domain_indices = False
-html_show_sourcelink = False
-html_copy_source = False
-#manpages_url = 'http://man7.org/linux/man-pages/man{section}/{page}.{section}.html'
-manpages_url = 'https://linux.die.net/man/{section}/{page}'
-
-# -- Options for manual page output --------------------------------------------
-
-# Skip a separate AUTHOR section
-man_authors = []
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- ('libhashkit' ,'libhashkit' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_create' ,'hashkit_clone' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_create' ,'hashkit_create' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_create' ,'hashkit_free' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_create' ,'hashkit_is_allocated' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_function' ,'hashkit_function' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_function' ,'hashkit_get_distribution_function' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_function' ,'hashkit_get_function' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_function' ,'hashkit_set_custom_distribution_function',u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_function' ,'hashkit_set_custom_function' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_function' ,'hashkit_set_distribution_function' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_function' ,'hashkit_set_function' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_crc32' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_fnv1_32' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_fnv1_64' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_fnv1a_32' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_fnv1a_64' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_functions' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_hsieh' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_jenkins' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_md5' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_functions' ,'hashkit_murmur' ,u'libhashkit Documentation' ,man_authors,3),
- ('libhashkit/hashkit_value' ,'hashkit_value' ,u'libhashkit Documentation' ,man_authors,3),
-
- ('libmemcached' ,'libmemcached' ,u'C/C++ Client Library for memcached' ,man_authors,3),
- ('libmemcached/configuration' ,'libmemcached_check_configuration' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/configuration' ,'libmemcached_configuration' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/configuration' ,'memcached' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/examples' ,'libmemcached_examples' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_analyze' ,'memcached_analyze' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_append' ,'memcached_append_by_key' ,u'Appending to or Prepending Data' ,man_authors,3),
- ('libmemcached/memcached_append' ,'memcached_append' ,u'Appending to or Prepending Data' ,man_authors,3),
- ('libmemcached/memcached_append' ,'memcached_prepend_by_key' ,u'Appending to or Prepending Data' ,man_authors,3),
- ('libmemcached/memcached_append' ,'memcached_prepend' ,u'Appending to or Prepending Data' ,man_authors,3),
- ('libmemcached/memcached_auto' ,'memcached_auto' ,u'Incrementing and Decrementing Values',man_authors,3),
- ('libmemcached/memcached_auto' ,'memcached_decrement' ,u'Incrementing and Decrementing Values',man_authors,3),
- ('libmemcached/memcached_auto' ,'memcached_decrement_with_initial' ,u'Incrementing and Decrementing Values',man_authors,3),
- ('libmemcached/memcached_auto' ,'memcached_increment' ,u'Incrementing and Decrementing Values',man_authors,3),
- ('libmemcached/memcached_auto' ,'memcached_increment_with_initial' ,u'Incrementing and Decrementing Values',man_authors,3),
- ('libmemcached/memcached_behavior' ,'memcached_behavior_get' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_behavior' ,'memcached_behavior_set' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_behavior' ,'memcached_behavior' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_callback' ,'memcached_callback_get' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_callback' ,'memcached_callback_set' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_callback' ,'memcached_callback' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_cas' ,'memcached_cas_by_key' ,u'Storing and Replacing Data' ,man_authors,3),
- ('libmemcached/memcached_cas' ,'memcached_cas' ,u'Atomic Compare and Swap' ,man_authors,3),
- ('libmemcached/memcached_create' ,'memcached_clone' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_create' ,'memcached_create' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_create' ,'memcached_free' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_create' ,'memcached_servers_reset' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_delete' ,'memcached_delete_by_key' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_delete' ,'memcached_delete' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_dump' ,'memcached_dump' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_exist' ,'memcached_exist_by_key' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_exist' ,'memcached_exist' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_fetch' ,'memcached_fetch' ,u'Retrieving data from the server' ,man_authors,3),
- ('libmemcached/memcached_flush_buffers' ,'memcached_flush_buffers' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_flush' ,'memcached_flush' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_generate_hash_value','memcached_generate_hash' ,u'Generating hash values directly' ,man_authors,3),
- ('libmemcached/memcached_generate_hash_value','memcached_generate_hash_value' ,u'Generating hash values directly' ,man_authors,3),
- ('libmemcached/memcached_get' ,'memcached_fetch_execute' ,u'Retrieving data from the server' ,man_authors,3),
- ('libmemcached/memcached_get' ,'memcached_fetch_result' ,u'Retrieving data from the server' ,man_authors,3),
- ('libmemcached/memcached_get' ,'memcached_get_by_key' ,u'Retrieving data from the server' ,man_authors,3),
- ('libmemcached/memcached_get' ,'memcached_get' ,u'Retrieving data from the server' ,man_authors,3),
- ('libmemcached/memcached_get' ,'memcached_mget_by_key' ,u'Retrieving data from the server' ,man_authors,3),
- ('libmemcached/memcached_get' ,'memcached_mget_execute_by_key' ,u'Retrieving data from the server' ,man_authors,3),
- ('libmemcached/memcached_get' ,'memcached_mget_execute' ,u'Retrieving data from the server' ,man_authors,3),
- ('libmemcached/memcached_get' ,'memcached_mget' ,u'Retrieving data from the server' ,man_authors,3),
- ('libmemcached/memcached_last_error' ,'memcached_last_error_errno' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_last_error' ,'memcached_last_error_message' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_last_error' ,'memcached_last_error' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_memory_allocators' ,'memcached_get_memory_allocators' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_memory_allocators' ,'memcached_memory_allocators' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_memory_allocators' ,'memcached_set_memory_allocators_context' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_memory_allocators' ,'memcached_set_memory_allocators' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_quit' ,'memcached_quit' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_result_st' ,'memcached_result_cas' ,u'Working with result sets' ,man_authors,3),
- ('libmemcached/memcached_result_st' ,'memcached_result_create' ,u'Working with result sets' ,man_authors,3),
- ('libmemcached/memcached_result_st' ,'memcached_result_flags' ,u'Working with result sets' ,man_authors,3),
- ('libmemcached/memcached_result_st' ,'memcached_result_free' ,u'Working with result sets' ,man_authors,3),
- ('libmemcached/memcached_result_st' ,'memcached_result_key_length' ,u'Working with result sets' ,man_authors,3),
- ('libmemcached/memcached_result_st' ,'memcached_result_key_value' ,u'Working with result sets' ,man_authors,3),
- ('libmemcached/memcached_result_st' ,'memcached_result_length' ,u'Working with result sets' ,man_authors,3),
- ('libmemcached/memcached_result_st' ,'memcached_result_st' ,u'Working with result sets' ,man_authors,3),
- ('libmemcached/memcached_result_st' ,'memcached_result_value' ,u'Working with result sets' ,man_authors,3),
- ('libmemcached/memcached_return_t' ,'memcached_return_t' ,u'Return type values ' ,man_authors,3),
- ('libmemcached/memcached_sasl' ,'memcached_destroy_sasl_auth_data' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_sasl' ,'memcached_get_sasl_callbacks' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_sasl' ,'memcached_sasl_set_auth_data' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_sasl' ,'memcached_sasl' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_sasl' ,'memcached_set_sasl_callbacks' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_servers' ,'memcached_server_add' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_servers' ,'memcached_server_add_unix_socket' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_servers' ,'memcached_server_count' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_servers' ,'memcached_server_cursor' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_servers' ,'memcached_server_list' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_servers' ,'memcached_server_push' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_servers' ,'memcached_server_st' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_servers' ,'memcached_servers' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_server_st' ,'memcached_server_list_append' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_server_st' ,'memcached_server_list_count' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_server_st' ,'memcached_server_list_free' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_server_st' ,'memcached_servers_parse' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_set_encoding_key' ,'memcached_set_encoding_key' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_set' ,'memcached_add_by_key' ,u'Storing and Replacing Data' ,man_authors,3),
- ('libmemcached/memcached_set' ,'memcached_add' ,u'Storing and Replacing Data' ,man_authors,3),
- ('libmemcached/memcached_set' ,'memcached_replace_by_key' ,u'Storing and Replacing Data' ,man_authors,3),
- ('libmemcached/memcached_set' ,'memcached_replace' ,u'Storing and Replacing Data' ,man_authors,3),
- ('libmemcached/memcached_set' ,'memcached_set_by_key' ,u'Storing and Replacing Data' ,man_authors,3),
- ('libmemcached/memcached_set' ,'memcached_set' ,u'Storing and Replacing Data' ,man_authors,3),
- ('libmemcached/memcached_stats' ,'memcached_stat_execute' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_stats' ,'memcached_stat_get_keys' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_stats' ,'memcached_stat_get_value' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_stats' ,'memcached_stat_servername' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_stats' ,'memcached_stats' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_stats' ,'memcached_stat' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_strerror' ,'memcached_strerror' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_touch' ,'memcached_touch_by_key' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_touch' ,'memcached_touch' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_user_data' ,'memcached_get_user_data' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_user_data' ,'memcached_set_user_data' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_user_data' ,'memcached_user_data' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_verbosity' ,'memcached_verbosity' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_version' ,'memcached_lib_version' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcached/memcached_version' ,'memcached_version' ,u'libmemcached Documentation' ,man_authors,3),
-
- ('libmemcachedutil' ,'libmemcachedutil' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool_behavior_get' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool_behavior_set' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool_create' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool_destroy' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool_fetch' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool_pop' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool_push' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool_release' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool_st' ,u'libmemcached Documentation' ,man_authors,3),
- ('libmemcachedutil/memcached_pool' ,'memcached_pool' ,u'libmemcached Documentation' ,man_authors,3),
-
- ('bin/memcapable' , 'memcapable' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memcat' , 'memcat' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memcp' , 'memcp' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memdump' , 'memdump' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memerror' , 'memerror' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memflush' , 'memflush' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memrm' , 'memrm' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memaslap' , 'memaslap' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memslap' , 'memslap' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memstat' , 'memstat' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memexist' , 'memexist' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memparse' , 'memparse' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memping' , 'memping' , u'libmemcached Documentation' , man_authors, 1),
- ('bin/memtouch' , 'memtouch' , u'libmemcached Documentation' , man_authors, 1),
- ]
-
-rst_prolog = """
-.. |libhashkit_version| replace:: @LIBHASHKIT_VERSION_MAJOR@.@LIBHASHKIT_VERSION_MINOR@
-.. |libmemcached_version| replace:: @LIBMEMCACHED_VERSION_MAJOR@.@LIBMEMCACHED_VERSION_MINOR@
-"""
-
-@SPHINX_CONF_APPEND@
Copyright
=========
- * | 2011-2013 Brian Aker, DataDifferential
+ * | 2006-2014 Brian Aker, DataDifferential
| https://datadifferential.com/
* | 2020 Michael Wallner, SmugMug Inc
| https://smugmug.com/
.. toctree::
- :caption: libmemcached
:titlesonly:
Introduction <libmemcached>
libmemcached/index
+ libmemcachedutil API <libmemcachedutil/index>
+ libhashkit API <libhashkit/index>
+ bin/index
libmemcached/index_misc
-.. toctree::
- :titlesonly:
- :caption: libmemcachedutil
-
- Introduction <libmemcachedutil>
- libmemcachedutil/index
-
-.. toctree::
- :titlesonly:
- :caption: libhashkit
-
- Introduction <libhashkit>
- libhashkit/index
-
.. toctree::
:maxdepth: 1
- :caption: Client Applications
-
- bin/index
-
-.. toctree::
- :caption: Copyright
- :hidden:
+ changelogs
copyright
Index
+++ /dev/null
-libhashkit - C/C++ hashing library
-==================================
-
-SYNOPSIS
---------
-
-#include <libhashkit-|libhashkit_version|/hashkit.h>
- Compile and link with -lhashkit.
-
-DESCRIPTION
------------
-
-`libhashkit` is a small and thread-safe client library that provides a collection
-of useful hashing algorithms.
-
-`libhashkit` is distributed with `libmemcached`.
-
-SEE ALSO
---------
-
-.. only:: man
-
- :manpage:`libmemcached(3)`
- :manpage:`hashkit_create(3)`
- :manpage:`hashkit_function(3)`
- :manpage:`hashkit_functions(3)`
- :manpage:`hashkit_value(3)`
-
-.. only:: html
-
- * :doc:`libmemcached`
- * :doc:`libhashkit/hashkit_create`
- * :doc:`libhashkit/hashkit_function`
- * :doc:`libhashkit/hashkit_functions`
- * :doc:`libhashkit/hashkit_value`
-
.. only:: html
- * :doc:`../libhashkit`
+ * :doc:`index`
* :doc:`hashkit_value`
* :doc:`hashkit_function`
.. only:: html
- * :doc:`../libhashkit`
+ * :doc:`index`
* :doc:`hashkit_create`
* :doc:`hashkit_functions`
.. only:: html
- * :doc:`../libhashkit`
+ * :doc:`index`
* :doc:`hashkit_create`
* :doc:`hashkit_function`
.. only:: html
- * :doc:`../libhashkit`
+ * :doc:`index`
* :doc:`hashkit_create`
* :doc:`hashkit_function`
* :doc:`hashkit_functions`
-libhashkit API
-==============
+libhashkit - C/C++ hashing library
+==================================
+
+SYNOPSIS
+--------
+
+#include <libhashkit-|libhashkit_version|/hashkit.h>
+ Compile and link with -lhashkit.
+
+DESCRIPTION
+-----------
+
+`libhashkit` is a small and thread-safe client library that provides a collection
+of useful hashing algorithms.
+
+`libhashkit` is distributed with `libmemcached`.
.. toctree::
:titlesonly:
hashkit_function
hashkit_functions
hashkit_value
+
+SEE ALSO
+--------
+
+.. only:: man
+
+ :manpage:`libmemcached(3)`
+ :manpage:`hashkit_create(3)`
+ :manpage:`hashkit_function(3)`
+ :manpage:`hashkit_functions(3)`
+ :manpage:`hashkit_value(3)`
+
+.. only:: html
+
+ * :doc:`../libmemcached`
.. only:: html
- * :doc:`libhashkit`
- * :doc:`libmemcachedutil`
+ * :doc:`libhashkit/index`
+ * :doc:`libmemcachedutil/index`
SEE ALSO
--------
-Misc
-====
+Miscellaneous
+=============
.. toctree::
- :titlesonly:
+ :maxdepth: 1
Configuration <configuration>
Constants <constants>
+++ /dev/null
-
-libmemcachedutil - C/C++ utilities extending libmemcached
-=========================================================
-
-Utility library for libmemcached
-
-SYNOPSIS
---------
-
-#include <libmemcachedutil-|libmemcached_version|/util.h>
- Compile and link with -lmemcachedutil -lmemcached
-
-DESCRIPTION
------------
-
-`libmemcachedutil` is a small and thread-safe client library that provides extra
-functionality built on top of `libmemcached`.
-
-THREADS AND PROCESSES
----------------------
-
-Do not try to access an instance of `memcached_st` from multiple threads at the
-same time. If you want to access memcached from multiple threads you should
-either clone the `memcached_st`, or use the memcached pool implementation. See
-`memcached_pool`.
-
-SEE ALSO
---------
-
-.. only:: man
-
- :manpage:`libmemcached(3)`
- :manpage:`memcached_pool(3)`
- :manpage:`memcached_pool_destroy(3)`
- :manpage:`memcached_pool_pop(3)`
- :manpage:`memcached_pool_push(3)`
-
-.. only:: html
-
- * :doc:`../libmemcached`
- * :doc:`libmemcachedutil/memcached_pool`
-libmemcachedutil API
-====================
+libmemcachedutil - C/C++ utilities extending libmemcached
+=========================================================
+
+Utility library for libmemcached
+
+SYNOPSIS
+--------
+
+#include <libmemcachedutil-|libmemcached_version|/util.h>
+ Compile and link with -lmemcachedutil -lmemcached
+
+DESCRIPTION
+-----------
+
+`libmemcachedutil` is a small and thread-safe client library that provides extra
+functionality built on top of `libmemcached`.
+
+THREADS AND PROCESSES
+---------------------
+
+Do not try to access an instance of `memcached_st` from multiple threads at the
+same time. If you want to access memcached from multiple threads you should
+either clone the `memcached_st`, or use the memcached pool implementation. See
+`memcached_pool`.
.. toctree::
:titlesonly:
:caption: Additional Utilities
memcached_pool
+
+SEE ALSO
+--------
+
+.. only:: man
+
+ :manpage:`libmemcached(3)`
+ :manpage:`memcached_pool(3)`
+ :manpage:`memcached_pool_destroy(3)`
+ :manpage:`memcached_pool_pop(3)`
+ :manpage:`memcached_pool_push(3)`
+
+.. only:: html
+
+ * :doc:`../libmemcached`
+