#命令行 #脚本 #服务器 #执行 #远程 #shell #默认

rusty-runner-api

该包纯粹为远程脚本执行服务器提供 REST API 抽象。

2 个稳定版本

1.0.1 2023 年 7 月 19 日
1.0.0 2023 年 3 月 31 日

文件系统 中排名 1218

Download history 4/week @ 2024-03-17 22/week @ 2024-03-31 1/week @ 2024-04-07 35/week @ 2024-04-14 27/week @ 2024-04-21 4/week @ 2024-04-28 33/week @ 2024-05-19 22/week @ 2024-05-26 3/week @ 2024-06-02

每月下载量 60

MIT/Apache

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

长时间运行的工作

使用 reqwestactix_web 并不对 REST 调用施加显著的超时限制。因此,目前 REST 调用将一直等待命令终止并返回。请确保您的命令始终终止,以避免锁定宝贵的资源。

在 API 的未来版本中,可能会添加一个 RunStatus::Pending 变体,以及一个轮询 REST 调用。

安全

该API不包含任何安全措施。请确保它只能从受信任的主机访问。例如,通过SSH端口转发。

许可证:MIT OR Apache-2.0

依赖项

~0.4–1MB
~23K SLoC