Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
P

pelikan

> 编程语言
Open source

Pelikan is Twitter's unified cache backend

2.0K stars0 likes0 views
WebsiteGitHub

About

Pelikan is Twitter's unified cache backend

Pelikan

Pelikan is Twitter's framework for developing cache services. It is:

  • Fast: Pelikan provides high-throughput and low-latency caching solutions.

  • Reliable: Pelikan is designed for large-scale deployment and the implementation is informed by our operational experiences.

  • Modular: Pelikan is a framework for rapidly developing new caching solutions by focusing on the inherent architectural similarity between caching services and providing reusable low-level components.

License: Apache-2.0 Build Status Fuzz Status Zulip Chat

Website | Chat

Content

  • Overview
    • Products
    • Features
  • Build
  • Usage
  • Community
    • Stay in touch
    • Contributing
  • Documentation
  • License

Overview

After years of using and working on various cache services, we built a common framework that reveals the inherent architectural similarity among them.

By creating well-defined modules, most of the low-level functionalities are reused as we create different binaries. The implementation learns from our operational experiences to improve performance and reliability, and leads to software designed for large-scale deployment.

The framework approach allows us to develop new features and protocols quickly.

Products

Pelikan contains the following products:

  • pelikan_segcache_rs: a Memcached-like server with extremely high memory efficiency and excellent core scalability. See our NSDI'21 paper for design and evaluation details.
  • pelikan_pingserver_rs: an over-engineered, production-ready ping server useful as a tutorial and for measuring baseline RPC performance
  • momento_proxy: a proxy which allows existing applications to use Momento instead of a Memcache-compatible cache backend.

Legacy

Pelikan legacy codebase can be found within the legacy folder of this project. It is composed of the original C codebase and backend implementations. It remains as a reference, but is not recommended for production deployments.

Features

  • runtime separation of control and data plane
  • predictably low latencies via lockless data structures, worker never blocks
  • per-module config options and metrics that can be composed easily
  • multiple storage and protocol implementations, easy to further extend
  • low-overhead command logger for hotkey and other important data analysis

Building Pelikan

Requirement

  • Rust stable toolchain
  • C toolchain: llvm/clang (>= 7.0)
  • Build tools: cmake (>= 3.2)

Build

bash
git clone https://github.com/twitter/pelikan.git
cd pelikan
cargo build --release

Tests

bash
cargo test

Usage

Using pelikan_segcache_rs as an example, other executables are highly similar.

To get info of the service, including usage format and options, run:

bash
target/release/pelikan_segcache_rs --help

To launch the service with default settings, simply run:

bash
target/release/pelikan_segcache_rs

To launch the service with the sample config file, run:

bash
target/release/pelikan_segcache_rs config/segcache.toml

You should be able to try out the server using an existing memcached client, or simply with telnet.

bash
$ telnet localhost 12321
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
set foo 0 0 3
bar
STORED

Attention: use admin port for all non-data commands.

bash
$ telnet localhost 9999
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
version
VERSION 0.1.0
stats
STAT pid 54937
STAT time 1459634909
STAT uptime 22
STAT version 100
STAT ru_stime 0.019172
...

Configuration

Pelikan is file-first when it comes to configurations, and currently is config-file only. You can create a new config file following the examples included under the config directory.

Community

Stay in touch

  • Join our project chat on Zulip for questions and discussions
  • Follow us on Twitter: @pelikan_cache
  • Visit http://pelikan.io

Contributing

Please take a look at our community manifesto and coding style guide.

If you want to submit a patch, please follow these steps:

  1. create a new issue
  2. fork on github & clone your fork
  3. create a feature branch on your fork
  4. push your feature branch
  5. create a pull request linked to the issue

Documentation

We have made progress and are actively working on documentation, and will put it on our website. Meanwhile, check out the current material under docs/

License

This software is licensed under the Apache 2.0 license, see LICENSE for details.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言