accept [IPv6] on memcached_servers_parse
[awesomized/libmemcached] / README.md
1 # libmemcached
2
3 [![Gitter Badge]](https://gitter.im/m6w6/libmemcached)
4 [![License Badge]](https://opensource.org/licenses/BSD-3-Clause)
5
6 [Gitter Badge]: https://badges.gitter.im/m6w6/libmemcached.svg "Gitter Chat"
7 [License Badge]: https://img.shields.io/badge/License-BSD%203--Clause-blue.svg "BSD 3-Clause"
8
9 libmemcached is an open source C/C++ client library and tools for the
10 memcached server (http://memcached.org/). It has been designed to be
11 light on memory usage, thread safe, and provide full access to server
12 side methods.
13
14 > **NOTE:**
15 > This is a resurrection of the original work from Brian Aker at
16 > [libmemcached.org](https://libmemcached.org) and the only publicly maintained
17 > version of libmemcached currently known to me.
18
19 ## Documentation
20
21 [![Docs Actions Badge]](
22 https://github.com/m6w6/libmemcached/actions?query=workflow%3Adocs-publish-pages)
23
24 [Docs Actions Badge]:
25 https://github.com/m6w6/libmemcached/workflows/docs-publish-pages/badge.svg?branch=v1.x
26 "Github Docs Action"
27
28 See https://m6w6.github.io/libmemcached
29
30 ### Building and updating docs
31
32 See [gh-pages/publish](./docs/gh-pages/publish.sh) script and the
33 [docs-publish-pages](./.github/workflows/docs-publish-pages.yml) workflow,
34 which automate pushing updated documentation to github pages.
35
36 ## Installing
37
38 libmemcached uses `CMake`.
39 Please see/edit [`CMakeConfig.txt`](./CMakeConfig.txt) or use `ccmake(1)` or
40 `cmake-gui(1)` to set any preferred options.
41
42 ### From source
43
44 git clone github.com:m6w6/libmemcached
45 mkdir build-libmemcached
46 cd $_
47 cmake ../libmemcached
48 make
49 sudo make install
50
51 #### Requirements
52
53 * CMake 3.9+
54 * C++11 compiler
55 * GNU Bison 2.3+ and Flex
56
57 ##### Optional dependencies
58
59 * C++17 compiler (required for: tests)
60 * Intel's libtbb (optional for: tests; for GCC's stdlib parallelism support)
61 * pthreads (required for: tests, contrib/bin/memaslap, libmemcachedutil/pool)
62 * libevent (required for: contrib/bin/memaslap)
63 * Cyrus' libsasl2 (required for: libmemacached/sasl)
64
65 ### Binaries
66
67 CI and release builds for Linux, a couple BSDs, MacOS and Windows are available at
68 https://artifacts.m6w6.name/libmemcached/ and rsync://m6w6.name::artifacts/libmemcached/.
69
70 ## Testing
71
72 [![Codecov Badge]](https://codecov.io/gh/m6w6/libmemcached)
73
74 [Codecov Badge]:
75 https://codecov.io/gh/m6w6/libmemcached/branch/v1.x/graph/badge.svg
76 "Code coverage"
77
78 Enable the `BUILD_TESTING` setting for a build and run `make test`.
79
80 cmake -DBUILD_TESTING=ON ../libmemcached
81 make test
82
83 ### Continuous integration
84
85 [![Actions Badge]](https://github.com/m6w6/libmemcached/actions?query=workflow%3Acmake-build-ci)
86 [![Sourcehut Badge]](https://builds.sr.ht/~m6w6/libmemcached)
87
88 [Actions Badge]:
89 https://github.com/m6w6/libmemcached/workflows/cmake-build-ci/badge.svg?branch=v1.x
90 "Github Actions"
91 [Sourcehut Badge]:
92 https://builds.sr.ht/~m6w6/libmemcached/commits.svg
93 "Sourcehut Builds"
94
95 CI/Testing is performed on the following system matrix:
96
97 | OS | Compiler | Arch | Comments |
98 |------------------|------------------------------|-------------------------|----------------------------|
99 | Linux | GNU 7/8/9/10, Clang 6/8/9/10 | amd64 | sasl, coverage, sanitizers |
100 | MacOS | AppleClang 12 | amd64 | sasl, coverage |
101 | FreeBSD, OpenBSD | Clang 8 | amd64 | sasl, coverage |
102 | Windows | MSVC 16, MinGW | amd64 | no sasl, no tests |
103 | Solaris | SunPro 12.5 | amd64 | no sasl, no tests, manually|
104
105 libmemcached has been tested against [memcached](https://github.com/memcached/memcached) v1.5 and v1.6.
106
107 ## ChangeLog
108
109 Check out the latest [releases](https://github.com/m6w6/libmemcached/releases)
110 or the bundled [ChangeLog](./ChangeLog-1.1.md) for a comprehensive list of changes.
111
112 ## License
113
114 libmemcached is licensed under the 3-Clause-BSD license, which can be
115 found in the accompanying [LICENSE](./LICENSE) file.
116
117 ## Contributing
118
119 Please report any issues on the [bug tracker](https://github.com/m6w6/libmemcached/issues).
120
121 A list of known permanent issues is maintained in [BUGS](./BUGS.md).
122
123 All forms of contribution are welcome! Please see the bundled
124 [CONTRIBUTING](./CONTRIBUTING.md) note for the general principles followed.
125
126 The list of current and past maintainers and contributors is available in [AUTHORS](./AUTHORS).
127