{"id":16133955,"url":"https://github.com/noah2610/pong-cli","last_synced_at":"2026-03-17T14:55:05.744Z","repository":{"id":35445580,"uuid":"216320142","full_name":"Noah2610/pong-cli","owner":"Noah2610","description":"Play pong from your terminal!","archived":false,"fork":false,"pushed_at":"2022-04-19T10:40:00.000Z","size":199,"stargazers_count":11,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T21:21:25.141Z","etag":null,"topics":["cli","cli-game","game","pong"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/pong-cli","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/Noah2610.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}},"created_at":"2019-10-20T06:51:33.000Z","updated_at":"2025-02-28T16:41:27.000Z","dependencies_parsed_at":"2022-08-08T08:15:42.051Z","dependency_job_id":null,"html_url":"https://github.com/Noah2610/pong-cli","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noah2610%2Fpong-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noah2610%2Fpong-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noah2610%2Fpong-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Noah2610%2Fpong-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Noah2610","download_url":"https://codeload.github.com/Noah2610/pong-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244249193,"owners_count":20422921,"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","cli-game","game","pong"],"created_at":"2024-10-09T22:46:46.071Z","updated_at":"2026-03-17T14:55:03.965Z","avatar_url":"https://github.com/Noah2610.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pong CLI\nA CLI pong clone.  \nUses the [`crossterm`][crossterm] and [`specs`][specs] crates.\n\n---\n\n- [Asciicasts](#asciicasts)\n- [Description](#description)\n- [Installation](#installation)\n  - [From crates.io](#from-cratesio)\n  - [Binaries](#binaries)\n  - [From source](#from-source)\n- [Configuration](#configuration)\n- [Features](#features)\n- [License](#license)\n\n---\n\n## Asciicasts\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://asciinema.org/a/277218\" target=\"_blank\"\u003e\n    \u003cimg\n     title=\"player vs AI\"\n     src=\"https://asciinema.org/a/277218.svg\"\n     width=\"300px\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://asciinema.org/a/277219\" target=\"_blank\"\u003e\n    \u003cimg\n    title=\"player vs AI with 3 balls\"\n    src=\"https://asciinema.org/a/277219.svg\"\n    width=\"300px\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Description\nPlay __pong__ from your terminal!  \nPlay against a ball-chasing AI opponent,  locally against another player,  \nor let _two_ AIs fight it out!  \nEverything is configurable, see the [Configuration][readme-configuration] section.\n\n## Installation\n### From [crates.io][crates.io]\nYou'll need to have `cargo` and `rust` version __1.38.0__ or higher installed.  \nDownload, build, and install from [crates.io][crates.io] with ...\n```\ncargo install pong-cli\n```\nThen you should be able to run the game from anywhere with ...\n```\npong-cli\n```\n\n### Binaries\nBinaries for Linux and Windows are available from the [releases] GitHub page.  \nFrom there, simply download the `.zip` file for your platform,  \nextract the archive and run the executable:  \n- `pong-cli` for Linux (from terminal),  \n  or double-click the `PongCLI.desktop` file from your GUI file-manager\n- `pong-cli.exe` for Windows\n\n### From source\nTo build the game from source, you'll need to clone the repo and compile the game using `cargo`.  \nYou'll need to have `rust` version __1.38.0__ or higher installed.  \n\nClone the repository with ...\n```\ngit clone https://github.com/Noah2610/pong-cli\n```\n`cd` into the project's root with `cd pong-cli`,  \nThen you can build and run the game with ...\n```\ncargo run --release\n```\nYou can also install it with `cargo`, so it is available everywhere from the command-line ...\n```\ncargo install --path .\n```\n\n## Configuration\nSettings are read from a `.ron` file at one of the following locations (checked in order):\n- `./settings.ron`\n- `./pong-cli.ron`\n- `$HOME/.pong-cli.ron`\n- `$HOME/.config/pong-cli/settings.ron` (for Linux),  \n  `$HOME/AppData/Roaming/pong-cli/settings.ron` (for Windows)  \n  `$HOME/Library/Preferences/pong-cli/settings.ron` (for MacOS)\n\nTo start, copy the default [`settings.ron`][settings.ron] file to one of these locations.\n\nOnce the `settings.ron` file is in place, you can edit it as you wish.  \nThe file itself is commented, so just open it to see all available settings.\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n  Download with `curl` on Linux\n  \u003c/summary\u003e\n\n  On Linux, you can enter the following (if you have `curl` installed), to  \n  automatically create the proper directory/directories and download the latest `settings.ron` file:\n\n  ```\n  mkdir -p ~/.config/pong-cli\n  curl https://raw.githubusercontent.com/Noah2610/pong-cli/master/settings.ron \u003e ~/.config/pong-cli/settings.ron\n  ```\n\u003c/details\u003e\n\n## Features\n| Feature   | Default? | Description |\n| :-------- | :------: | :---------- |\n| `random`  | __YES__  | Enables randomization for ball spawning directions.\u003cbr /\u003eSee `settings.ron` file for configuration. |\n| `style`   | __YES__  | Adds configurable color and text styling (bold, underline, etc.) to the game.\u003cbr /\u003eSee `settings.ron` file for configuration. |\n| `nightly` | no       | Enables `specs/nightly` feature for debug/development purposes. |\n\nUse `--no-default-features` to disable all features when building with `cargo build/run`.\n\n## License\n[MIT License][mit]\n\n[mit]:                  https://github.com/Noah2610/pong-cli/blob/master/LICENSE\n[crossterm]:            https://github.com/crossterm-rs/crossterm\n[specs]:                https://github.com/amethyst/specs\n[settings.ron]:         https://github.com/Noah2610/pong-cli/blob/master/settings.ron\n[issue-settings]:       https://github.com/Noah2610/pong-cli/issues/2\n[releases]:             https://github.com/Noah2610/pong-cli/releases\n[readme-configuration]: #configuration\n[crates.io]:            https://crates.io/crates/pong-cli\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoah2610%2Fpong-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoah2610%2Fpong-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoah2610%2Fpong-cli/lists"}