๐๏ธ System Architecture
June 1, 2026 ยท View on GitHub
Architecture Overview
EasyPostman
โโโ ๐จ UI Layer
โ โโโ Workspace management
โ โโโ Collections management
โ โโโ Environments configuration
โ โโโ History records
โ โโโ Performance testing module
โ โโโ NetworkLog monitoring
โโโ ๐ง Business Layer
โ โโโ HTTP request engine
โ โโโ Workspace switching and isolation
โ โโโ Git version control engine
โ โโโ Environment variable resolver
โ โโโ Script execution engine
โ โโโ Data import/export module
โ โโโ Performance test executor
โโโ ๐พ Data Layer
โ โโโ Workspace storage management
โ โโโ Local file storage
โ โโโ Git repository management
โ โโโ Configuration management
โ โโโ History management
โโโ ๐ Network Layer
โโโ HTTP/HTTPS client
โโโ WebSocket client
โโโ SSE client
โโโ Git remote communication
๐ ๏ธ Technology Stack
Core Technologies
-
Java 17: Modern LTS version for latest Java features
- Records, Sealed Classes, Pattern Matching
- Enhanced NullPointerException messages
- Text Blocks for better string handling
-
JavaSwing: Native desktop GUI framework
- Cross-platform compatibility (Windows, macOS, Linux)
- Native look and feel
- No browser overhead
-
jlink & jpackage: Official packaging tools
- Create custom runtime images
- Generate native installers (DMG, EXE, DEB)
- Reduce distribution size
UI Libraries
-
FlatLaf: Modern Swing theme
- Dark and light mode support
- HiDPI/Retina display support
- Native macOS styling
- Customizable color schemes
-
RSyntaxTextArea: Syntax highlighting editor
- Support for JSON, XML, JavaScript, HTML
- Code folding
- Auto-completion
- Search and replace
-
jIconFont-Swing: Vector icon font support
- FontAwesome integration
- Scalable icons
- Theme-aware coloring
-
SwingX: Extended Swing components
- Enhanced tables and trees
- Date pickers
- Search panels
-
MigLayout: Powerful layout manager
- Flexible and intuitive
- Responsive design support
- Cross-platform consistency
Network & Communication
-
OkHttp: High-performance HTTP client
- HTTP/2 support
- Connection pooling
- Transparent GZIP compression
- Response caching
- Interceptor support
-
WebSocket Support: Real-time communication
- Full-duplex communication
- Message framing
- Ping/pong heartbeat
-
SSE (Server-Sent Events): Server push support
- Event stream parsing
- Automatic reconnection
- Event ID tracking
Script Engine
-
GraalVM JavaScript: Embedded script runtime for pre/post request scripts
- ECMAScript 5.1 support
- Java interoperability
-
GraalVM JavaScript (Java 17+): Modern JavaScript engine
- ECMAScript 2021+ support
- Better performance
- Polyglot support
Data & Storage
-
JSON Processing:
- Gson: JSON serialization/deserialization
- Jackson: Alternative JSON processor
-
XML Processing:
- Built-in Java XML APIs
- XPath support
-
File Storage:
- Local JSON files for collections
- Environment variable files
- Git repository integration
Version Control
- JGit: Pure Java Git implementation
- Clone, commit, push, pull operations
- Branch management
- Conflict detection
- SSH and HTTPS authentication
Logging
- SLF4J + Logback: Logging framework
- Flexible configuration
- Multiple appenders (console, file, rolling)
- Performance optimization
- Async logging support
๐ฆ Build & Packaging
Build Tools
- Maven: Project management and build automation
- Dependency management
- Plugin ecosystem
- Multi-module support
Packaging Strategy
-
Cross-platform JAR:
mvn clean package- Produces
easy-postman-{version}.jar - Requires Java 17+ runtime
- Smallest distribution size
- Produces
-
Native Installers:
- macOS DMG:
jpackagewith custom icon and background - Windows EXE: Inno Setup installer with shortcuts
- Windows Portable ZIP: Extract and run, no installation
- Linux DEB: Debian package with desktop integration
- macOS DMG:
-
Custom Runtime:
- Use
jlinkto create minimal JRE - Include only required modules
- Reduce distribution size by ~50%
- Use
Recommended Development JDK
๐ก JetBrains Runtime (JBR) is recommended for best Swing performance:
- Better font rendering on all platforms
- Improved HiDPI support
- Swing-specific bug fixes
- Optimized garbage collection for desktop apps
Download: JetBrains Runtime Releases
๐ง Development Workflow
Project Structure
easy-postman/
โโโ src/main/java/ # Java source code
โ โโโ com/laker/postman/
โ โโโ ui/ # UI components
โ โโโ service/ # Business logic
โ โโโ model/ # Data models
โ โโโ network/ # Network layer
โ โโโ utils/ # Utilities
โโโ src/main/resources/ # Resources
โ โโโ icons/ # Application icons
โ โโโ themes/ # FlatLaf themes
โ โโโ js-libs/ # JavaScript libraries
โ โโโ messages*.properties # i18n files
โโโ build/ # Build scripts
โ โโโ mac.sh # macOS packaging
โ โโโ win-exe.bat # Windows installer
โ โโโ linux-deb.sh # Linux DEB packaging
โโโ docs/ # Documentation
Testing
- Unit Tests: JUnit 5
- Integration Tests: TestNG
- UI Testing: Manual testing with different themes and resolutions
๐ Performance Optimizations
UI Rendering
- Lazy loading for large collections
- Virtual scrolling for history
- Debounced search and filter
- Off-screen rendering for complex components
Network
- Connection pooling with OkHttp
- Request cancellation support
- Streaming response handling
- Gzip compression
Memory Management
- Weak references for caches
- Limited history retention
- Response size limits
- Garbage collection tuning
Startup Time
- Lazy initialization of components
- Parallel resource loading
- Optimized dependency graph
- AOT compilation with GraalVM (future)
๐ Security Considerations
- Local Storage: All data stored locally, no cloud sync
- No Telemetry: No tracking or analytics
- Certificate Validation: Proper SSL/TLS validation
- Credential Storage: Secure storage for Git credentials
- Script Sandbox: JavaScript execution in sandboxed environment
- Input Validation: Prevent injection attacks
๐ Cross-platform Compatibility
Windows
- Native look and feel
- File associations
- Registry integration
- Auto-update support
macOS
- Native menu bar integration
- Touch Bar support (future)
- Sandbox-compatible
- Notarization for security
Linux
- Desktop file integration
- System tray support
- Multiple desktop environments (GNOME, KDE, XFCE)
- AppImage support (future)
๐ Future Enhancements
- ๐ง Plugin system for extensibility
- ๐ง GraphQL support
- ๐ง gRPC protocol support
- ๐ง Mock server functionality
- ๐ง API documentation generation
- ๐ง Cloud workspace sync (optional)
- ๐ง Mobile companion app