All Projects → lpgauth → anchor

lpgauth / anchor

Licence: MIT License
High-Performance Erlang Memcached Client

Programming Languages

erlang
1774 projects
Makefile
30231 projects

Projects that are alternatives of or similar to anchor

Windterm
A quicker and better cross-platform SSH/Sftp/Shell/Telnet/Serial client.
Stars: ✭ 345 (+2200%)
Mutual labels:  client, high-performance
Shackle
High-Performance Erlang Network Client Framework
Stars: ✭ 163 (+986.67%)
Mutual labels:  client, high-performance
Zeus
A high performance, cross-platform Internet Communication Engine. Developed with native socket API. Aim at handling millions of concurrent connections.
Stars: ✭ 30 (+100%)
Mutual labels:  client, high-performance
Stripe
Typed .NET clients for stripe.com REST APIs
Stars: ✭ 193 (+1186.67%)
Mutual labels:  client, high-performance
Statsderl
High-Performance Erlang StatsD Client
Stars: ✭ 92 (+513.33%)
Mutual labels:  client, high-performance
High-Traffic-wordpress-server-configuration
High Traffic WordPress server configuration Nginx (updated) PHP 7.4 PHP-fpm Mariadb (updated) Wordpress (updated) Cloudflare Full SSL
Stars: ✭ 31 (+106.67%)
Mutual labels:  memcached, high-performance
snowem
Snowem is a lightweight live streaming server, based on webrtc technology. Its design mainly focuses on simplicity, scalability and high performance.
Stars: ✭ 73 (+386.67%)
Mutual labels:  high-performance
primme
PReconditioned Iterative MultiMethod Eigensolver for solving symmetric/Hermitian eigenvalue problems and singular value problems
Stars: ✭ 98 (+553.33%)
Mutual labels:  high-performance
AsyncWebSocketClient
php异步websocket客户端
Stars: ✭ 35 (+133.33%)
Mutual labels:  client
MultiHttp
This is a high performance , very useful multi-curl tool written in php. 一个超级好用的并发CURL工具!!!(httpful,restful, concurrency)
Stars: ✭ 79 (+426.67%)
Mutual labels:  high-performance
lazap
Lazap, a cross-platform Games Client/Launcher - All your games at ONE library
Stars: ✭ 15 (+0%)
Mutual labels:  client
LuisaRender
High-Performance Multiple-Backend Renderer Based on LuisaCompute
Stars: ✭ 47 (+213.33%)
Mutual labels:  high-performance
data-parallelism
juliafolds.github.io/data-parallelism/
Stars: ✭ 22 (+46.67%)
Mutual labels:  high-performance
electron-request
Zero-dependency, Lightweight HTTP request client for Electron or Node.js
Stars: ✭ 45 (+200%)
Mutual labels:  client
mentos
Fresh Python Mesos Scheduler and Executor driver
Stars: ✭ 18 (+20%)
Mutual labels:  client
haste-client
CLI client for haste-server (hastebin.com) written in Python
Stars: ✭ 13 (-13.33%)
Mutual labels:  client
gumble
Collection of high-performance, thread-safe, lock-free data structures for go
Stars: ✭ 12 (-20%)
Mutual labels:  high-performance
marina
High-Performance Erlang Cassandra CQL Client
Stars: ✭ 50 (+233.33%)
Mutual labels:  high-performance
nvimhost-scala
♦️ nvim host plugin provider and API client library in Scala
Stars: ✭ 19 (+26.67%)
Mutual labels:  client
bcnn
A minimalist Deep Learning framework for embedded Computer Vision
Stars: ✭ 39 (+160%)
Mutual labels:  high-performance

anchor

High-Performance Erlang Memcached Client

Build Status Coverage Status

Requirements

  • Memcached
  • Erlang 16.0 +

Features

  • Backpressure via backlog (OOM protection)
  • Binary protocol
  • Fast pool implementation (random | round_robin)
  • Performance optimized
  • Request pipelining

API

Function Index

Environment variables

Name Type Default Description
backlog_size pos_integer() 1024 maximum number of concurrent requests per connection
ip list() "127.0.0.1" server ip
pool_size pos_integer() 16 number of connections
pool_strategy random | round_robin random connection selection strategy
port pos_integer() 9042 server port
reconnect boolean() true reconnect closed connections
reconnect_time_max boolean() true reconnect maximum time
reconnect_time_min boolean() true reconnect minimum time
socket_options [gen_tcp:connect_option()] [binary, {buffer, 65535}, {nodelay, true}, {packet, raw}, {send_timeout, 50}, {send_timeout_close, true}] options passed to the socket

Examples

1> anchor_app:start().
{ok, [shackle, anchor]}

2> anchor:get(<<"foo">>).
{error, key_not_found}

3> anchor:set(<<"foo">>, <<"bar">>, 3600).
ok

4> anchor:get(<<"foo">>).
{ok, <<"bar">>}

5> anchor:delete(<<"foo">>).
ok

6> {ok, Ref} = anchor:async_get(<<"foo">>).
{ok, {anchor_6, #Ref<0.0.1.1363>}}

7> anchor:receive_response(Ref, 1000).
{error, key_not_found}

Tests

make dialyzer
make elvis
make eunit
make xref

License

The MIT License (MIT)

Copyright (c) 2014-2017 Louis-Philippe Gauthier

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].