{"id":17001675,"url":"https://github.com/shresht7/matrix-rain","last_synced_at":"2025-03-22T08:48:31.784Z","repository":{"id":38457843,"uuid":"455658004","full_name":"Shresht7/Matrix-Rain","owner":"Shresht7","description":"The matrix-rain effect in the terminal","archived":false,"fork":false,"pushed_at":"2024-10-22T16:55:38.000Z","size":11816,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-23T03:09:07.041Z","etag":null,"topics":["cli","command-line","matrix-rain"],"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/Shresht7.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":"2022-02-04T18:39:44.000Z","updated_at":"2024-10-22T16:55:38.000Z","dependencies_parsed_at":"2024-03-17T07:42:05.941Z","dependency_job_id":"29d3b5d1-fe62-47f4-b5f4-be5fac7123ab","html_url":"https://github.com/Shresht7/Matrix-Rain","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shresht7%2FMatrix-Rain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shresht7%2FMatrix-Rain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shresht7%2FMatrix-Rain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shresht7%2FMatrix-Rain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shresht7","download_url":"https://codeload.github.com/Shresht7/Matrix-Rain/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244931586,"owners_count":20534010,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cli","command-line","matrix-rain"],"created_at":"2024-10-14T04:25:44.909Z","updated_at":"2025-03-22T08:48:31.759Z","avatar_url":"https://github.com/Shresht7.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Matrix-Rain\n-------------\n\nThe matrix-rain effect in the terminal.\n\n![demo](./demo.gif)\n\n\u003e [!NOTE]\n\u003e\n\u003e Just a simple program I made while learning Rust!\n\n## 🌟 Features\n\n- Multiple character symbol sets, including original `Katakana` symbols, `binary`, `decimal`, `mathematical` symbols, `ASCII` characters, `Braille` patterns and more.\n- Customizable stream colors and gradients.\n- Adjustable frame rate, stream count, and spacing.\n- Option to leave a trail of characters as the streams pass by.\n- Randomized symbol switching for added visual interest.\n\n---\n\n## 🛠️ Installation\n\n\u003e [!NOTE]\n\u003e \n\u003e To install and run Matrix-Rain, you will need to have Rust and Cargo installed on your system. You can install Rust and Cargo by following the instructions at [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install).\n\nYou can clone the repository and build the project:\n\n```sh\ngit clone https://github.com/Shresht7/matrix-rain.git\ncd matrix-rain\ncargo build --release\n```\n\nTo run the project, use the following command:\n\n```sh\ncargo run --release\n```\n\nOr **alternatively**, you can also install `Matrix-Rain` using `cargo install` and add it to your `$PATH` variable for easy access:\n\n```sh\ncargo install --path . --name matrix-rain\n```\n\nAfter installation, you can run Matrix-Rain from anywhere by adding the Cargo bin directory to your `$PATH` variable.\n\n---\n\n## 📖 Usage Instructions\n\nTo use Matrix-Rain, you can run the project with the following command:\n\n```sh\nmatrix-rain [OPTIONS]\n```\n\nHere are some examples of how to use the different configuration options:\n\n- To use the original Katakana symbols with the default settings:\n  ```sh\n  matrix-rain\n  ```\n\n- To use binary symbols with a custom stream color and gradient:\n  ```sh\n  matrix-rain --mode binary --stream-color 0,255,70 --stream-color-gradient-factor 0.5\n  ```\n\n- To use ASCII characters with a higher frame rate and leave a trail:\n  ```sh\n  matrix-rain --mode ASCII --fps 120 --leave-trail\n  ```\n\n\u003e [!TIP]\n\u003e \n\u003e You can combine multiple options to customize the matrix-rain effect to your liking.\n\n### Configuration Options\n\nThe different configuration options available in this project are:\n\n* `mode`: The character symbol set to use. Valid options include \"Original\", \"Binary\", \"Decimal\", \"Math\", \"ASCII\", \"Braille\", \"Emoji\", and custom sets like \"abc123\".\n* `stream_color`: The color of the streaming entities, specified as an RGB value (e.g., \"0,255,70\").\n* `stream_color_gradient_factor`: The multiplier that describes the extent of the gradient in the stream color.\n* `leading_entity_color`: The color of the leading entity in a stream, specified as an RGB value (e.g., \"200,255,200\").\n* `leave_trail`: A boolean option to leave the trail intact as the streams pass by.\n* `fps`: The frame rate to run at, specified as the number of frames per second.\n* `stream_min_count`: The minimum number of entities per stream.\n* `stream_max_count`: The maximum number of entities per stream.\n* `stream_spacing`: The spacing between the streams, specified as the number of columns between each stream.\n* `switch_interval`: The maximum number of seconds within which an entity randomly switches its symbol.\n\nThese options are defined in the `src/config.rs` file.\n\n### Modes\n\nThe different modes available for the `mode` option are:\n\n* \"Original\" | \"Normal\" | \"Katakana\": Original Katakana Symbols (e.g., ア, カ, サ, ナ)\n* \"Binary\" | \"Bin\": 0s and 1s\n* \"Decimal\" | \"Numbers\" | \"Digits\": Decimal numbers from 0 to 9\n* \"Math\" | \"Maths\" | \"Mathematics\": Mathematical Symbols (e.g., ∐, ∑, ≠, →)\n* \"ASCII\" | \"Text\" | \"English\": ASCII Characters (from '!' to '~', including A-Z, a-z, 0-9, etc.)\n* \"Braille\" | \"Dots\": Braille patterns (e.g., ⠇, ⠾, ⣿)\n* \"Emoji\" | \"Cursed\": Emojis\n* Custom sets like \"abc123\": User-defined symbol set\n\nThese modes are defined in the `src/config.rs` file.\n\n### Customizing the Symbol Set\n\nTo specify custom character sets for the `mode` option, you can use the `Custom` variant of the `Symbols` enum.\n\nUse the `--mode` option followed by your custom character set. For example, to use the custom character set \"abc123\", you would run the command:\n```sh\ncargo run --release -- --mode abc123\n```\n\nThe custom character set can be any string of characters you want to use. The program will randomly select characters from this set for the matrix rain effect.\n\nThe custom character set is defined in the `src/config.rs` file and is handled by the `Symbols::Custom` variant in the `src/symbols.rs` file.\n\n---\n\n## Contributing\n\nContributions are welcome! If you would like to contribute to this project, please follow these guidelines:\n\n1. Fork the repository and create a new branch for your feature or bugfix.\n2. Write tests for your changes, if applicable.\n3. Ensure that all tests pass and the code is properly formatted.\n4. Submit a pull request with a clear description of your changes.\n\n## License\n\nThis project is licensed under the [MIT License](./LICENSE). See the [`LICENSE`](./LICENSE) file for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshresht7%2Fmatrix-rain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshresht7%2Fmatrix-rain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshresht7%2Fmatrix-rain/lists"}