{"id":51586012,"url":"https://github.com/waddie/nrepl-steel","last_synced_at":"2026-07-11T10:32:17.007Z","repository":{"id":364290499,"uuid":"1267054593","full_name":"waddie/nrepl-steel","owner":"waddie","description":"An nREPL server implementation for Steel Scheme","archived":false,"fork":false,"pushed_at":"2026-07-02T07:42:31.000Z","size":88,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-02T09:25:08.571Z","etag":null,"topics":["nrepl","scheme","server","steel-scheme"],"latest_commit_sha":null,"homepage":"https://www.tomwaddington.dev/steel-helix-first-steps.html","language":"Scheme","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/waddie.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-12T07:16:36.000Z","updated_at":"2026-07-02T07:44:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/waddie/nrepl-steel","commit_stats":null,"previous_names":["waddie/nrepl-steel"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/waddie/nrepl-steel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waddie%2Fnrepl-steel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waddie%2Fnrepl-steel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waddie%2Fnrepl-steel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waddie%2Fnrepl-steel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waddie","download_url":"https://codeload.github.com/waddie/nrepl-steel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waddie%2Fnrepl-steel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35360371,"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-07-11T02:00:05.354Z","response_time":104,"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":["nrepl","scheme","server","steel-scheme"],"created_at":"2026-07-11T10:32:16.920Z","updated_at":"2026-07-11T10:32:16.992Z","avatar_url":"https://github.com/waddie.png","language":"Scheme","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nrepl-steel\n\nAn [nREPL](https://nrepl.org) server for the\n[Steel](https://github.com/mattwparas/steel) Scheme runtime.\n\nThe protocol, transport and dispatch layers are pure Scheme; the evaluation\nbackend is a native Rust dylib (`libnrepl_steel_engine`) loaded over Steel’s FFI,\nwhich owns one Steel engine per session and exposes eval plus the global symbol\ntable that `completions`/`lookup` need.\n\n## Status\n\nWorking server covering the operations editors depend on:\n\n| Op            | Notes                                                       |\n| ------------- | ----------------------------------------------------------- |\n| `clone`       | new session, an isolated Steel engine with a persistent env |\n| `close`       | tear the session down                                       |\n| `describe`    | advertises supported ops + `versions`                       |\n| `eval`        | form-by-form, one `value` per form, batched `out`/`err`     |\n| `load-file`   | evaluate the `file` field (file contents, per spec)         |\n| `interrupt`   | best-effort, queued-only (see caveat)                       |\n| `ls-sessions` | list active sessions                                        |\n| `lookup`      | doc / arglists / type for a symbol (alias `info`)           |\n| `completions` | prefix completion over the session’s bound globals          |\n\nEach session is an isolated Steel engine; definitions persist across evals within\na session.\n\n**Interrupt caveat:** cancellation is best-effort. A still-queued eval is dropped,\nbut an eval already running cannot be aborted.\n\n## Installation\n\nRequires Steel 0.8.2 (`steel` on PATH) and\n[Forge](https://github.com/mattwparas/steel) (`forge` on PATH).\n\nThe evaluation backend is a native dylib: `forge` fetches a prebuilt one per\nplatform, or you build it yourself from a checkout with a Rust toolchain.\n\n```sh\n# From the repository – forge fetches the prebuilt dylib for your platform:\nforge pkg install --git https://github.com/waddie/nrepl-steel\n\n# Then add ~/.steel/bin to your PATH:\nexport PATH=\"$HOME/.steel/bin:$PATH\"\n```\n\nThis makes `nrepl-steel` available as a command and lets any Scheme script load\nthe library with `(require \"nrepl-steel/nrepl-server/server.scm\")`.\n\nFrom a local checkout you must build + install the dylib yourself (it goes to\n`$STEEL_HOME/native`, default `~/.steel/native`):\n\n```sh\n./build.sh                  # cargo build --release + install libnrepl_steel_engine\nforge install /path/to/nrepl-steel\n```\n\n## Usage\n\n```sh\nnrepl-steel                         # listens on 127.0.0.1:7888\nnrepl-steel 127.0.0.1:9000          # or pass host:port\n```\n\nOr from a checkout, without installing:\n\n```sh\nsteel nrepl-steel.scm               # listens on 127.0.0.1:7888\nsteel nrepl-steel.scm 127.0.0.1:9000\n```\n\nIt prints the listen address and parks until interrupted (Ctrl-C).\n\n### Connecting an editor\n\nPoint an nREPL client at the address. With\n[nrepl.hx](https://github.com/waddie/nrepl.hx) in\n[Helix](https://helix-editor.com/):\n\n```\n:nrepl-connect localhost:7888\n```\n\n## License\n\nCopyright © 2026 Tom Waddington\n\nDistributed under the MIT License. See LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaddie%2Fnrepl-steel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaddie%2Fnrepl-steel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaddie%2Fnrepl-steel/lists"}