Libraries Overview¶
Epsilon provides functional libraries organized into several packages:
Core Data Structures¶
- Data Structures - Immutable maps, sets, and collections
- JSON & YAML - Data serialization and parsing
- Cryptography - Hashing and checksums
- String Processing - Unicode-aware text operations
System Integration¶
- Networking - HTTP client/server and socket programming
- Threading - Concurrency primitives and thread pools
- Filesystem - File and directory operations
Design Philosophy¶
All libraries follow these principles:
- Immutable by default: Data structures don't modify in place
- Functional interfaces: Pure functions where possible
- Local nicknames: Clean integration with your code
- No external dependencies: Built on SBCL primitives only
Usage Pattern¶
(defpackage :my-app
(:use :cl)
(:local-nicknames
(:map :epsilon.lib.map)
(:json :epsilon.lib.json)
(:http :epsilon.net.http)))
(in-package :my-app)
;; Use the libraries with clean syntax
(defun api-handler (request)
(let ((data (map:make-map :status "ok" :timestamp (get-universal-time))))
(http:respond request 200 (json:encode data))))