2 个版本

0.0.1-beta.22023年3月18日
0.0.1-beta.12023年3月17日

#22 in #stateless

21 每月下载次数

MIT 许可证

12KB
75 代码行

reply

Crates.io version GitHub license Build CI Changelog CI Libraries.io SourceRank

reply📩 可以将任何命令行应用程序转换为(无状态的)REPL

$ reply 'python | cowsay -f tux -n'
> print("Hello reply📩!")
 ________________
< Hello reply📩! >
 ----------------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/

>

请阅读下面的安装使用说明。

安装

您可以将仓库克隆到您的计算机上并从中安装,或者直接从 GitHub 安装。这两种选项都需要已安装 Rust 和 Cargo

# Option 1: cloning and installing from the repository
$ git clone https://github.com/schneiderfelipe/getanswe.rs.git
$ cd getanswe.rs && cargo install reply --path=reply/

# Option 2: installing directly from GitHub
$ cargo install reply --git=https://github.com/schneiderfelipe/getanswe.rs

如果您想为项目的开发做出贡献,第一种方法是最佳选择(感谢您的兴趣!)然而,如果您只想安装开发版本,第二种方法可能更好。

使用

使用此工具很简单

$ reply 'python'
>

您在提示符中输入的内容将被发送到后端命令(例如示例中的 python)。命令的输出将在终端中显示。例如

$ reply 'python'
> print("Hello " + "python")
Hello python
>

但是,有一些事情需要注意

  • 仅捕获标准输出。如果没有打印任何内容,则不会显示任何内容。
  • REPL 是无状态的,这意味着没有携带内存。例如,如果您定义了一个变量,它将不会在下一个提示符中可用。

以下是一个示例

$ reply 'python'
> a = 2              # no output
> print(f"a = {a}")  # no memory
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

因此,这是后端应用程序的责任

  • 将结果打印到标准输出。
  • 实现内存(通常通过文件)。

不安全代码的使用

此项目禁止使用不安全代码。

许可证:MIT

依赖项

~11–22MB
~306K SLoC