{"id":32165045,"url":"https://github.com/ignacy/trex","last_synced_at":"2025-10-21T14:58:25.805Z","repository":{"id":62430531,"uuid":"50181684","full_name":"ignacy/trex","owner":"ignacy","description":"Key value store in Elixir designed to be used as Rails I18n backend","archived":false,"fork":false,"pushed_at":"2016-07-17T08:31:13.000Z","size":12507,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-21T14:58:13.090Z","etag":null,"topics":["elixir","key-value"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ignacy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-22T13:04:12.000Z","updated_at":"2021-07-02T19:20:43.000Z","dependencies_parsed_at":"2022-11-01T20:19:48.023Z","dependency_job_id":null,"html_url":"https://github.com/ignacy/trex","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ignacy/trex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignacy%2Ftrex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignacy%2Ftrex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignacy%2Ftrex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignacy%2Ftrex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ignacy","download_url":"https://codeload.github.com/ignacy/trex/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignacy%2Ftrex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280281400,"owners_count":26303709,"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","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"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":["elixir","key-value"],"created_at":"2025-10-21T14:58:24.233Z","updated_at":"2025-10-21T14:58:25.799Z","avatar_url":"https://github.com/ignacy.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Trex\n\nAn Elixir key-value store based on Mnesia, perfect as an i18n backend\nfor Rails applications.\n\n## Tests\n\nRun all tests with:\n\n    ./bin/all_tests.sh\n\n## Usage\n\nTo compile and start Trex instance:\n\n```sh\n./bin/run.sh\n```\n\n### Using Trex as a key-value store\n\nBy default Trex handles TCP connections on port 4040. The protocol is based on [RESP](http://redis.io/topics/protocol)\nexpects each message to be ended by `\\r\\n`. Accepted message types with examples:\n\n```\n\u003e PING\\r\\n\n+PONG\\r\n\n\u003e SET\\tFOO\\tBAR\\r\\n\n+OK\\r\n\n\u003e GET\\FOO\n+BAR\\r\n\n\u003e GET\\tBAR\n+\\r\n\n\u003e LIST\\r\\n\n+FOO\\r\n```\n\n### Using Trex as an i18n backend\n\nYou can find client gem with all the details here [trexrb](https://github.com/ignacy/trexrb)\n\n### Accessing Trex data using TrexCli\n\nUnder *trex_cli* directory, you can find a CLI client that connects to\na running Trex instance and allows you to interact with it.\n\n## Benchmarking\n\nTrex can be benchmarked using `redis-benchmark`, here's an example:\n\n```shell\nredis-benchmark -p 4040 -t ping,set,get\n====== PING_INLINE ======\n  100000 requests completed in 0.96 seconds\n  50 parallel clients\n  3 bytes payload\n  keep alive: 1\n\n99.85% \u003c= 1 milliseconds\n99.96% \u003c= 2 milliseconds\n99.97% \u003c= 3 milliseconds\n100.00% \u003c= 3 milliseconds\n103950.10 requests per second\n\n====== PING_BULK ======\n  100000 requests completed in 0.95 seconds\n  50 parallel clients\n  3 bytes payload\n  keep alive: 1\n\n99.88% \u003c= 1 milliseconds\n99.96% \u003c= 2 milliseconds\n99.96% \u003c= 3 milliseconds\n100.00% \u003c= 3 milliseconds\n104931.80 requests per second\n\n====== SET ======\n  100000 requests completed in 0.99 seconds\n  50 parallel clients\n  3 bytes payload\n  keep alive: 1\n\n99.88% \u003c= 1 milliseconds\n99.91% \u003c= 2 milliseconds\n99.96% \u003c= 3 milliseconds\n100.00% \u003c= 5 milliseconds\n100806.45 requests per second\n\n====== GET ======\n  100000 requests completed in 0.93 seconds\n  50 parallel clients\n  3 bytes payload\n  keep alive: 1\n\n99.90% \u003c= 1 milliseconds\n99.93% \u003c= 2 milliseconds\n99.93% \u003c= 3 milliseconds\n100.00% \u003c= 3 milliseconds\n108108.11 requests per second\n```\n\n\n## License\n\nThis code is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignacy%2Ftrex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fignacy%2Ftrex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignacy%2Ftrex/lists"}