{"id":19287979,"url":"https://github.com/pedrosfaria2/drop_copy_rust","last_synced_at":"2026-06-13T02:32:43.090Z","repository":{"id":246121690,"uuid":"820159395","full_name":"pedrosfaria2/drop_copy_rust","owner":"pedrosfaria2","description":"A drop copy implemented in Rust for Fix Procotol","archived":false,"fork":false,"pushed_at":"2024-06-26T15:27:03.000Z","size":71,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-17T02:03:49.046Z","etag":null,"topics":["cargo","clap","dropcopy","fix","fix-44","fix-protocol","quickfix","quickfix-rs","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pedrosfaria2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-25T23:33:33.000Z","updated_at":"2024-07-05T12:28:29.000Z","dependencies_parsed_at":"2025-01-05T19:22:17.959Z","dependency_job_id":"82bba534-ee95-42a4-a836-81812d8d5295","html_url":"https://github.com/pedrosfaria2/drop_copy_rust","commit_stats":null,"previous_names":["pedrosfaria2/drop_copy_rust"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pedrosfaria2/drop_copy_rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrosfaria2%2Fdrop_copy_rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrosfaria2%2Fdrop_copy_rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrosfaria2%2Fdrop_copy_rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrosfaria2%2Fdrop_copy_rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pedrosfaria2","download_url":"https://codeload.github.com/pedrosfaria2/drop_copy_rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pedrosfaria2%2Fdrop_copy_rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34270414,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cargo","clap","dropcopy","fix","fix-44","fix-protocol","quickfix","quickfix-rs","rust"],"created_at":"2024-11-09T22:07:44.402Z","updated_at":"2026-06-13T02:32:43.072Z","avatar_url":"https://github.com/pedrosfaria2.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Drop Copy App\n\n**Version**: 0.1.0  \n**Author**: Pedro Serrano Faria (pedroserrano2@gmail.com)\n\n## Overview\n\nThe Drop Copy App is a Rust-based application designed to manage multiple Drop Copy sessions. It supports configurations via YAML files and provides custom logging for both raw and human-readable FIX protocol messages.\n\n## FIX Protocol\n\nThe Financial Information Exchange (FIX) protocol is an electronic communications protocol initiated in 1992 for international real-time exchange of information related to securities transactions and markets. FIX is a widely used protocol by various financial institutions, enabling the exchange of trading information.\n\n### QuickFIX-rs Library\n\nThis application utilizes the `quickfix-rs` library, which is a Rust implementation of the QuickFIX engine. It handles the low-level details of the FIX protocol, allowing developers to focus on the business logic of their applications.\n\n## Features\n\n- Manages multiple Drop Copy sessions simultaneously\n- Custom logging of FIX protocol messages in both raw and human-readable formats\n- Configurable via YAML files\n- Command-line interface for easy usage\n\n\n## Logging\n\nAll logs, including raw and human-readable messages, are consolidated into a single file for each type. This makes it easier for users to track and analyze the sessions. The log files are stored in the `logs` directory:\n\n- `logs/raw.log`: Contains raw FIX messages.\n- `logs/human_readable.log`: Contains human-readable FIX messages with delimiters replaced for better readability.\n\n## Installation\n\n### Prerequisites\n\n- [Rust](https://www.rust-lang.org/tools/install)\n- [Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html)\n- [CMake](https://cmake.org/)\n- a C++ compiler (with C++17 support)\n\n### Steps\n\n1. Clone the repository:\n\n    ```sh\n    git clone https://github.com/pedrosfaria2/drop_copy_rust.git\n    cd drop_copy_rust\n    ```\n\n2. Build the project:\n\n    ```sh\n    cargo build\n    ```\n\n3. Run the tests:\n\n    ```sh\n    cargo test\n    ```\n\n## Usage\n\n### Running the Application\n\nTo run the Drop Copy App, you need to provide a YAML configuration file. Below is an example command:\n\n```sh\ncargo run -- --config config.yaml\n```\n\n### Configuration File\n\nThe configuration file should be in YAML format and include paths to session settings files. Here is an example `config.yaml`:\n\n```yaml\nsettings:\n  - \"session1.cfg\"\n  - \"session2.cfg\"\n  - \"session3.cfg\"\n```\n\n### Command-Line Interface\n\nThe Drop Copy App provides a command-line interface with the following options:\n\n```sh\nUSAGE:\n    drop_copy_app.exe --config \u003cFILE\u003e\n\nOPTIONS:\n    -c, --config \u003cFILE\u003e    Sets a custom config file. Example: --config config.yaml\n    -h, --help             Print help information\n    -V, --version          Print version information\n\nEXAMPLES:\n\nTo start the Drop Copy App with a custom configuration file:\n    drop_copy_app.exe --config config.yaml\n\nFor more information, visit https://github.com/pedrosfaria2/drop_copy_rust\n```\n\n## Code Structure\n\n- **main.rs**: Entry point of the application, sets up the command-line interface, and starts sessions.\n- **config.rs**: Handles loading and parsing of the configuration file.\n- **session.rs**: Manages the Drop Copy sessions and implements the FIX protocol interactions.\n- **handler.rs**: Processes the incoming FIX messages.\n- **custom_logger.rs**: Custom logging implementation for raw and human-readable messages.\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Important Notice\n\nThis code is an example implementation of a Drop Copy application using the QuickFIX-rs library. If you intend to use this code in a production environment, please review it thoroughly and make the necessary adaptations, improvements, and implementations specific to your use case.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrosfaria2%2Fdrop_copy_rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpedrosfaria2%2Fdrop_copy_rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpedrosfaria2%2Fdrop_copy_rust/lists"}