Package Index¶
Complete index of all packages in the Epsilon system.
Package Hierarchy¶
Epsilon organizes functionality into a hierarchical package structure:
epsilon
├── lib/ # Core library functions
├── sys/ # System-level utilities
├── net/ # Network protocols
└── tool/ # Development tools
Core Library (epsilon.*
)¶
Data Structures¶
epsilon.map
- Immutable maps (HAMT implementation)epsilon.sequence
- Lazy sequences with functional operationsepsilon.set
- Immutable sets based on HAMTepsilon.list
- Extended list operations and utilitiesepsilon.vector
- Vector operations and bounds checkingepsilon.collect
- Collection macros for efficient list building
Data Encoding/Decoding¶
epsilon.json
- JSON parsing and generation with Unicode supportepsilon.yaml
- YAML document processingepsilon.base64
- Base64 encoding and decodingepsilon.hex
- Hexadecimal string conversionepsilon.msgpack
- MessagePack binary serialization
Cryptography & Hashing¶
epsilon.digest
- SHA-2 family hash functions (SHA-224, SHA-256, SHA-384, SHA-512)epsilon.checksum
- CRC-32 and Adler-32 checksums
Text & String Processing¶
epsilon.string
- String manipulation and utilitiesepsilon.character
- Character operations and Unicode supportepsilon.regex
- Regular expression matching and replacement
Utilities¶
epsilon.time
- Time and date utilitiesepsilon.uuid
- UUID generation and parsingepsilon.uri
- URI parsing, construction, and manipulationepsilon.reader
- Enhanced reader macros and syntax
System Utilities (epsilon.sys.*
)¶
Threading & Concurrency¶
epsilon.sys.thread
- Threading primitives and thread poolsepsilon.sys.lock
- Synchronization primitives (locks, semaphores)epsilon.sys.atomic
- Atomic operations and lock-free data structures
Filesystem¶
epsilon.sys.fs
- Filesystem operations and path manipulationepsilon.sys.file
- File I/O utilities and streamingepsilon.sys.path
- Path construction and resolution
Environment & System¶
epsilon.sys.env
- Environment variable access and managementepsilon.sys.process
- Process creation and managementepsilon.sys.signal
- Signal handlingepsilon.sys.gc
- Garbage collection controls and monitoring
Package System¶
epsilon.sys.package
- Package utilities and introspectionepsilon.sys.asdf
- ASDF integration (when available)
Network Protocols (epsilon.net.*
)¶
Core Networking¶
epsilon.net.core
- Low-level networking primitivesepsilon.net.socket
- Socket operations and managementepsilon.net.dns
- DNS resolution and caching
HTTP¶
epsilon.net.http
- Complete HTTP client and server implementationepsilon.net.client
- HTTP client with connection poolingepsilon.net.server
- HTTP server with request routingepsilon.net.middleware
- HTTP middleware for common operations
Security¶
epsilon.net.tls
- TLS/SSL support for secure connectionsepsilon.net.auth
- Authentication and authorization utilities
Development Tools (epsilon.tool.*
)¶
Build System¶
epsilon.tool.build
- Dependency-tracking build systemepsilon.tool.dependency
- Dependency analysis and resolutionepsilon.tool.hash
- Content hashing for incremental builds
Testing Framework¶
epsilon.tool.test
- Test definition and execution frameworkepsilon.tool.assert
- Assertion macros and utilitiesepsilon.tool.mock
- Test doubles and mockingepsilon.tool.fixture
- Test fixtures and setup utilities
Performance & Analysis¶
epsilon.tool.bench
- Benchmarking framework with statistical analysisepsilon.tool.profile
- Performance profiling utilitiesepsilon.tool.metric
- Metrics collection and reporting
Code Quality¶
epsilon.tool.format
- Code formatting and pretty-printingepsilon.tool.lint
- Static analysis and lintingepsilon.tool.doc
- Documentation generationepsilon.tool.check
- Type checking and validation
Package Conventions¶
Naming Patterns¶
- Predicates: End with
-p
(e.g.,empty-p
,valid-p
) - Constructors: Often start with
make-
(e.g.,make-map
) - Converters: Use
from-
/to-
or->
patterns - Constants: Use
+constant-name+
convention
Local Nicknames¶
All packages define local nicknames for dependencies:
(defpackage #:epsilon.map
(:use #:common-lisp)
(:local-nicknames
(#:collect #:epsilon.collect)
(#:hash #:epsilon.hash))
(:export ...))
Export Patterns¶
- Core functions: Always exported
- Implementation details: Not exported
- Utilities: Exported if generally useful
- Constants: Exported with
+name+
convention
Integration Guidelines¶
Package Dependencies¶
- Core packages depend only on other core packages
- System packages may depend on core packages
- Network packages depend on core and system packages
- Tool packages may depend on any other packages
Local Nickname Usage¶
(defpackage #:my-package
(:use #:common-lisp)
(:local-nicknames
(#:map #:epsilon.map)
(#:seq #:epsilon.sequence)
(#:json #:epsilon.json)))
(in-package #:my-package)
;; Clean, readable code
(map:get my-map :key)
(seq:map #'process data)
(json:encode object)
Shadowing Imports¶
Some packages shadow Common Lisp symbols:
;; epsilon.map shadows: map, reduce, count
;; epsilon.sequence shadows: map, reduce, count, remove
;; epsilon.list shadows: remove, delete
;; Access original CL functions with cl: prefix when needed
(cl:map 'list #'identity my-list)
Package Documentation¶
Each package includes: - Docstring describing purpose and scope - Usage examples in package-level documentation - Function documentation for all exported symbols - Integration guide showing usage with other packages
For detailed API documentation, see API Reference or use the documentation generator.