-
Notifications
You must be signed in to change notification settings - Fork 15
feat: FerrisShare p2p-file-transfer #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jorisvilardell
wants to merge
12
commits into
dev-sys-do:main
Choose a base branch
from
jorisvilardell:try/relink-fork
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Initialize FerrisShare project with P2P file transfer protocol and ba…
…do#2) * Add initial project structure and define core modules for networking and storage * Implement ProtocolMessage and ProtocolError enums with TryFrom conversion for message parsing * Restore main function with REPL for protocol command input and message parsing * Update protocol command definitions to include checksum in YEET command
…handling (dev-sys-do#3) * Add initial project structure and define core modules for networking and storage * Implement ProtocolMessage and ProtocolError enums with TryFrom conversion for message parsing * Restore main function with REPL for protocol command input and message parsing * Update protocol command definitions to include checksum in YEET command * Implement string conversion for ProtocolMessage and ProtocolError enums * Enhance REPL error handling and response formatting in main function
…n and protocol command (dev-sys-do#4) * feat(command): implement CommandError enum and CommandService trait with CommandServiceImpl * feat(network): add network service impl with mpsc channel buffer * chore(dependencies): update dependencies in Cargo.toml * feat(main): refactor main function to use async/await and integrate network service * feat(network): fix reject other connection and send message to sender * fix(command): return correct block index in OkHousten response
… management (dev-sys-do#5) * feat(docs): update architecture document * feat(network): add TransferState enum to manage transfer states * feat(network): enhance protocol handling with a protocol trust and transfer state management * feat(entities): add YeetBlock struct with associated methods for block management * feat(network): trust protocol with command handling and update of transfer state
…isShare protocol (dev-sys-do#6) * feat(storage): add StorageError enum with Display implementation and update StorageRepository trait * feat(storage): implement FSStorageRepository with file handling and sanitization * feat(command): update CommandService trait to include process_binary_data method * feat(network): make command_service public in NetworkServiceImpl * feat(application): implement FerrisShareState struct with command and network services * refactor(network): remove unused HashSet import from entities.rs * feat(main): refactor main function to initialize services with storage repository * feat(storage): add Display implementation for StorageError enum * feat(command): implement From trait for CommandError to String conversion * feat(command): update execute_protocol_command to return OkHousten and enhance process_binary_data with error handling * refactor(network): handle process write binary data and closing connection on sender close it * feat(network): enhance TransferState to track current file during data transfer
…ev-sys-do#7) * feat(gitignore): add public directory to .gitignore * fix(refactor): corrompted transfer * move send message responsability into handler to keep control on incoming data on receiver yeet binary datas * feat(cli): implement CLI for ferrisshare with file sending command * feat(dependencies): add anyhow and clap_derive to enhance error handling and CLI functionality * refactor(services): simplify state extraction in process_binary_data method * refactor(readme): update project description and simplify usage instructions
* refactor: remove unused import of E constant * feat(dependencies): add dotenv crate for environment variable management * feat(gitignore): add entry to ignore environment variable files * feat(config): add configuration struct and load from environment variables
* fix(network): improve error handling in ProtocolMessage parsing and TcpListener binding refactor(storage): simplify filename sanitization and directory creation logic * docs(README): update CLI example to recommend a minimal block size of 2048 bytes * docs(architecture): add flow diagrams for FerrisShare protocol (v1 and v2) * docs(README): clarify purpose of README and link to architecture documentation
- Added command entities, ports, and services for handling protocol commands. - Implemented CommandService with methods for executing protocol commands and processing binary data. - Created network entities, ports, and services to manage TCP connections and protocol message handling. - Developed FSStorageRepository for file storage operations, including file creation, writing blocks, and finalizing files. - Established a main entry point to initialize and run the application with TCP listener and handler. - Introduced error handling for command execution and network operations. - Added README files for new projects: Network Port Scanner, Tic-Tac-Toe, and Web Scraper.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bonjour,
Après de nombreuses tentatives j'ai réussi à repousser sur un nouveau fork mes modifications depuis le répo déliés. Vous pouvez en vérifier les sources juste ici : https://github.com/jorisvilardell/Ferrisshare/
Cordialement.