Sign inSign up

mnemelabs/core

By mnemelabs

โ€ขUpdated 6 months ago

Image
Databases & storage
0

1.4K

mnemelabs/core repository overview

โ mnemelabs/core

Mneme โ€” distributed in-memory cache built in Rust. Sub-millisecond reads, QUORUM writes, TLS 1.3 everywhere.

๐ŸŒ mnemelabs.ioโ  ยท ๐Ÿ“ฆ GitHubโ  ยท ๐Ÿ“– Docsโ 


โ What's in this image

The Core node (Mnemosyne) โ€” pure RAM hot pool + CLI:

  • mneme-core โ€” Core server (client port 6379, replication port 7379, metrics 9090)
  • mneme-cli โ€” Management CLI (included for exec access)
  • Auto-generates TLS certificates on first start (CA + node cert via rcgen)
  • CA cert symlinked to /etc/mneme/ca.crt for zero-config CLI access

โ Quick start

โ Solo node (dev / single-server)
docker run -d \
  --name mneme \
  -p 6379:6379 \
  -e MNEME_ADMIN_PASSWORD=secret \
  -v mneme-data:/var/lib/mneme \
  mnemelabs/core:0.1.0

Connect:

docker exec mneme mneme-cli -u admin -p secret ping
# PONG
docker exec mneme mneme-cli -u admin -p secret set hello world
docker exec mneme mneme-cli -u admin -p secret get hello
# world

โ Docker Compose

โ Solo (development)
services:
  mneme:
    image: mnemelabs/core:0.1.0
    container_name: mneme-solo
    entrypoint: ["/bin/bash", "/docker/entrypoint-solo.sh"]
    user: root
    environment:
      MNEME_ADMIN_PASSWORD: secret
      MNEME_POOL_BYTES: 512mb
    ports:
      - "6379:6379"
      - "9090:9090"
    volumes:
      - mneme-data:/var/lib/mneme
    restart: unless-stopped

volumes:
  mneme-data:
โ Core + Keepers (production cluster)
services:
  mneme-core:
    image: mnemelabs/core:0.1.0
    container_name: mneme-core
    entrypoint: ["/bin/bash", "/docker/entrypoint-core.sh"]
    user: root
    environment:
      MNEME_ADMIN_PASSWORD: secret
      MNEME_CLUSTER_SECRET: change-me-in-production
      MNEME_POOL_BYTES: 2gb
    ports:
      - "6379:6379"
      - "7379:7379"
      - "9090:9090"
    volumes:
      - core-certs:/var/lib/mneme
    restart: unless-stopped

  mneme-keeper-1:
    image: mnemelabs/keeper:0.1.0
    container_name: mneme-keeper-1
    entrypoint: ["/bin/bash", "/docker/entrypoint-keeper.sh"]
    user: root
    environment:
      MNEME_CLUSTER_SECRET: change-me-in-production
      MNEME_CORE_ADDR: mneme-core:7379
      MNEME_KEEPER_ID: keeper-1
    volumes:
      - keeper1-data:/var/lib/mneme
    depends_on:
      - mneme-core
    restart: unless-stopped

  mneme-keeper-2:
    image: mnemelabs/keeper:0.1.0
    container_name: mneme-keeper-2
    entrypoint: ["/bin/bash", "/docker/entrypoint-keeper.sh"]
    user: root
    environment:
      MNEME_CLUSTER_SECRET: change-me-in-production
      MNEME_CORE_ADDR: mneme-core:7379
      MNEME_KEEPER_ID: keeper-2
    volumes:
      - keeper2-data:/var/lib/mneme
    depends_on:
      - mneme-core
    restart: unless-stopped

volumes:
  core-certs:
  keeper1-data:
  keeper2-data:

โ Environment variables

VariableDefaultDescription
MNEME_ADMIN_PASSWORDsecretAdmin user password โ€” change in production
MNEME_CLUSTER_SECRETโ€”Shared secret for Keeper join auth (cluster mode)
MNEME_POOL_BYTES512mbHot RAM pool size (512mb, 2gb, 8gb, โ€ฆ)
MNEME_LOG_LEVELinfoLog verbosity: trace / debug / info / warn / error
MNEME_NODE_IDhostnameRaft / cluster node identifier

โ Ports

PortProtocolPurpose
6379TLS 1.3Client connections
7379mTLSKeeper + Raft replication
9090HTTPPrometheus metrics (/metrics)

โ Topologies

ModeImages neededUse case
Solocore onlyDev, CI, latency benchmarks
Clustercore + keeper ร— NSingle-server production, full durability
HAcore ร— 3 + keeper ร— NMulti-node, automatic failover (Raft)
Read replicasany + core (replica mode)Read scale-out, analytics

See the full docker-compose.ymlโ  for ready-to-use profiles.


โ Consistency levels

LevelBehaviourLatency
EVENTUALFire-and-forget write, any replica for reads~150 ยตs
ONEFirst Keeper ACKfastest durable
QUORUMโŒŠN/2โŒ‹+1 Keeper ACKs (default)~800 ยตs
ALLEvery Keeper ACKmaximum durability

โ License

MIT โ€” ยฉ 2024 Mneme Labs

Tag summary

Content type

Image

Digest

sha256:3f1b4e6d9โ€ฆ

Size

40.4 MB

Last updated

6 months ago

docker pull mnemelabs/core