{"id":35015256,"url":"https://github.com/metacall/polyglot-repl","last_synced_at":"2025-12-27T05:18:38.155Z","repository":{"id":48655025,"uuid":"383633161","full_name":"metacall/polyglot-repl","owner":"metacall","description":"Implements a polyglot REPL which supports multiple languages and shared meta-object protocol scope between REPLs.","archived":false,"fork":false,"pushed_at":"2025-02-21T07:28:38.000Z","size":5381,"stargazers_count":13,"open_issues_count":3,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-21T08:27:45.142Z","etag":null,"topics":["metacall","multilanguage","nodejs","polyglot","python","repl","ruby"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/metacall.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":"2021-07-07T00:45:13.000Z","updated_at":"2025-02-21T07:28:43.000Z","dependencies_parsed_at":"2022-09-06T08:00:44.872Z","dependency_job_id":null,"html_url":"https://github.com/metacall/polyglot-repl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/metacall/polyglot-repl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metacall%2Fpolyglot-repl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metacall%2Fpolyglot-repl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metacall%2Fpolyglot-repl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metacall%2Fpolyglot-repl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/metacall","download_url":"https://codeload.github.com/metacall/polyglot-repl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metacall%2Fpolyglot-repl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28072855,"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-12-27T02:00:05.897Z","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":["metacall","multilanguage","nodejs","polyglot","python","repl","ruby"],"created_at":"2025-12-27T05:18:34.098Z","updated_at":"2025-12-27T05:18:38.147Z","avatar_url":"https://github.com/metacall.png","language":"JavaScript","readme":"# [MetaCall](https://github.com/metacall/core/) Polyglot REPL\n\n![image](assets/terminal.gif)\n\n## Description\n\nThis repository implements a Polyglot REPL which shares the state of the meta-object protocol between the REPLs. Using the Polyglot REPL, you can share state between multiple languages through their individual REPL and mix code straight from your terminal.\n\nThe high-level `api.js` provided in the `src` provide five functions:\n- `initialize`: To initialize the Polyglot REPL\n- `select`: To select the individual language REPL; Currently Python (py) and JavaScript (node) are supported.\n- `execute`: To execute a line, function or module after a REPL has been selected.\n- `destroy`: Destroy the REPL and exit gracefully.\n- `available`: Check all the available REPLs.\n\nThe `cli.js` provided in the `src` provides a way to develop your own REPLs and execute code straight from the command line. You can sutomize the existing REPL or define a new one.\n\nThe entry script `index.js` provides an abstraction over the usage of the high-level APIs defined above through the following commands:\n\n```\n  %repl \u003ctag\u003e: Switch from different REPL (available tags: node py)\n  %inspect: Show available functions\n  %available: Show available REPLs\n  %eval \u003ctag\u003e \u003ccode\u003e: Load inline code, useful for loading inter-language functions for the REPL\n  %load \u003ctag\u003e \u003cfile_0\u003e \u003cfile_1\u003e ... \u003cfile_N\u003e: Load a file, useful for loading inter-language functions for the REPL\n  %exit: Finalizes the REPL\n```\n\n## Installation\n\n1) Install MetaCall:\n    ```sh\n    curl -sL https://raw.githubusercontent.com/metacall/install/master/install.sh | sh\n    ```\n\n2) For running it:\n    ```sh\n    metacall index.js\n    ```\n\n## LICENSE\n\n[Apache 2.0](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetacall%2Fpolyglot-repl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetacall%2Fpolyglot-repl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetacall%2Fpolyglot-repl/lists"}