2 个稳定版本
1.0.1 | 2023 年 7 月 19 日 |
---|---|
1.0.0 | 2023 年 3 月 31 日 |
在 文件系统 中排名 1218
每月下载量 60
12KB
64 行代码(不包括注释)
rusty-runner-api
该包纯粹为远程脚本执行服务器提供 rest api 抽象。此外,同一存储库中还有一个规范的服务器实现。
可以用作 SSH 的替代品,无需处理命令行转义或默认 shell。
用法
有关完整用法,请参阅 [api
] 中的 serde 结构。
GET /api/info
返回一个信息丰富的api::InfoResponse
对象。POST /api/run
执行与std::process::Command
相似的命令。POST /api/runscript
使用给定的解释器运行脚本。GET /api/file
从服务器的文件系统中获取文件。
文件操作
执行命令的工作目录是实现定义的,但所有方法在服务器生命周期内保持相同。文件获取路径也是相对于此目录。
最好使用相对的随机命名的子目录进行文件操作。例如,./task-9ae4ef2b9d13/your-file
长时间运行的工作
使用 reqwest
和 actix_web
并不对 REST 调用施加显著的超时限制。因此,目前 REST 调用将一直等待命令终止并返回。请确保您的命令始终终止,以避免锁定宝贵的资源。
在 API 的未来版本中,可能会添加一个 RunStatus::Pending
变体,以及一个轮询 REST 调用。
安全
该API不包含任何安全措施。请确保它只能从受信任的主机访问。例如,通过SSH端口转发。
许可证:MIT OR Apache-2.0
依赖项
~0.4–1MB
~23K SLoC