Skip to content

Conversation

@jorisvilardell
Copy link

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.

jorisvilardell and others added 11 commits October 28, 2025 20:41
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.
@jorisvilardell jorisvilardell changed the title Try/relink fork feat: FerrisShare p2p-file-transfer Oct 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant