mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-10-23 06:44:00 +03:00
Async core (EE namespace, documented in docs/articles/async_core.md): - Add Result<T, E>, Task<T>/TaskSource<T> with continuations and abandonment, Executor, CancellationToken and SmallUniqueFunction - Make ThreadPool an Executor with submit() returning a Task; work items are move-only - Add Scene::MainThreadExecutor to resume continuations on the UI thread - Move URI to EE core (eepp/core/uri.hpp) with filesystem helpers (fromFSPath, getFSPath, getParent); EE::Network::URI remains an alias - Add System::SHA1 (streaming, modeled on MD5) - Rename the pack path index to System::PackFileIndex; VirtualFileSystem is kept as a deprecated alias eepp-vfs module (src/modules/vfs, documented in docs/articles/vfs.md): - URI-addressed VirtualFileSystem with pluggable providers: file://, mem://, res:// (packs) and sftp:// - Async file and directory handles, metadata, space info, capabilities and IOStream adapters - Copy/move transfers with progress, cancellation and conflict options - Change watching through efsw locally, efsw-agent over SSH for sftp://, and a polling fallback - VFSDirectoryModel for table views: sorting, name filtering (plain, glob, regex), type and item-count columns, per-column CSS classes and lifetime-safe executor delivery SFTP: - SSH sessions over libssh2 with ssh_config parsing (Host/Match, ProxyJump, ProxyCommand), known_hosts verification, ssh-agent, key and keyboard-interactive authentication, and connection pooling - Built by default; opt out with --without-vfs-sftp - Vendor libssh2 1.11.1 with the mbedTLS backend, and add Ed25519 host and user keys to it through Monocypher 4.0.2 (mbedTLS has no Ed25519) eefm (src/tools/eefm), a Dolphin-like file manager on eepp-vfs: - Split panes, each with its own tabs, location bar, history and filter bar - Places panel with Places, Remote (saved locations and network mounts) and Devices (with usage), editable, hideable and reorderable by drag - Details view with drag and drop, clipboard interoperable with other file managers, rename, new folder/file, trash (freedesktop, macOS, Windows) and properties - Open and Open With from shared-mime-info and desktop entries - Persisted window, panes, tabs, columns, sort and places UI and window fixes: - Keep table column max widths across model updates and give the main column the remaining width - Count left margins when laying out push button icon and text - Add Clipboard::setMimeData, getDataString and getTextMimeTypes - Report Zip::close/addFile failures and free archives correctly Tests and tooling: - Unit tests for the async core, VFS providers, transfers, watching, the directory model, ssh_config, SFTP (local sshd), the efsw agent protocol, SHA1 and URI - Add a VFS benchmark - Update efsw with efsw-agent and its wire protocol