Skip to content

Epsilon

Epsilon is a Common Lisp environment based on SBCL with functional data structures, cryptography, networking, and development tools.

Quick Start

# Download and install
curl -sSL https://github.com/jbouwman/epsilon/releases/latest/download/install.sh | bash

# Run
epsilon

Example

;; Functional maps
(map:make-map :a 1 :b 2 :c 3)
;=> {:a 1, :b 2, :c 3}

;; JSON processing
(json:decode "{\"name\": \"Epsilon\", \"version\": 1.0}")
;=> (("name" . "Epsilon") ("version" . 1.0))

Design Principles

  • Functional programming: Immutable data structures with structural sharing
  • No external dependencies: Uses only SBCL built-in modules
  • Performance: Type declarations and optimized implementations where needed

System Overview

Core Library (epsilon.lib.*)

Functional data structures and utilities:

  • Data structures: map, sequence, set, vector, list
  • Data encoding: json, yaml, msgpack, base64, hex
  • Cryptography: digest (SHA-2), checksum (CRC-32, Adler-32)
  • Text processing: string, character, regex
  • Utilities: uri, uuid, time

System (epsilon.sys.*)

Platform integration and system services:

  • Concurrency: thread, lock, atomic
  • System: fs, env, process, pkg, gc

Networking (epsilon.net.*)

Network programming with platform-specific optimizations:

  • Core: socket, dns, http
  • Platform support: epoll (Linux), kqueue (macOS), iocp (Windows)

Tools (epsilon.tool.*)

Development and build tools:

  • build: Dependency-tracking build system
  • test: Test framework with metrics
  • benchmark: Performance measurement
  • format: Code formatting

Documentation