Skip to content

andyl/rfxi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rfxi

Rfxi / Rfx Interface - User interface and APIs for Rfx.

Rfxi can be used interactively, and can interoperate with standalone apps, editors, and dev tools.

Rfxi provides:

  • a CLI and a Webapp
  • Server APIs via Popen3, Rest/JSON and Websocket

Note: This code is pre-release! Not at all ready for production use.

Roadmap

  • CLI: Options parser
  • CLI: Mix-like task introspection on operations and converters
  • CLI: Repl
  • CLI: Embedded web server
  • Web: Restful JSON API
  • Web: WebSockets API
  • Web: Minimal End-User LiveView pages
  • Neovim: Plugin using JSON/REST interface

Notes

About Rfxi:

  • The CLI is extensible for new Rfx Operations using an introspection technique borrowed from custom Mix Tasks.
  • A standalone app can add custom modules to the Rfx.Ops namespace. Using runtime introspection they will be integrated into the CLI help menus just like built-in Rfx Operations.
  • There is a repl built into the CLI.
  • The repl uses the same option parser as the CLI.
  • The web server can be started from a CLI command (eg rfx --server), and can be launched by a parent process (eg Vim, Emacs, VsCode...)
  • The WebUI provides an API - Restful JSON & socket interfaces - and have Liveviews for lightweight testing and monitoring
  • The JSON and socket APIs use the same option parser and return values as the CLI

Related Code

  • Rfx and Sourceror - the foundation libraries for Rfxi
  • rfx.nvim - an experimental Neovim plugin that uses Rfxi
  • rfx.vscode - an experimental Vscode extension that uses Rfxi

Support

To ask questions:

Developers welcome!

Installation

  • Clone this repo
  • Install the dependencies mix deps.get
  • Build the escript mix escript.build
  • Run the script ./rfx --help