<p align="center">
<img alt="logo.svg" src="https://raw.githubusercontent.com/rsvim/assets/main/logo/RSVIM-logo.svg" />
</p>
<p align="center">
The VIM editor reinvented in Rust+TypeScript.
</p>
<p align="center">
<a href="https://crates.io/crates/rsvim"><img alt="rsvim" src="https://img.shields.io/crates/v/rsvim" /></a>
<a href="https://docs.rs/rsvim_core/latest/"><img alt="rsvim_core" src="https://img.shields.io/docsrs/rsvim_core?label=docs.rs" /></a>
<a href="https://github.com/rsvim/rsvim/actions/workflows/release.yml"><img alt="release.yml" src="https://img.shields.io/github/actions/workflow/status/rsvim/rsvim/release.yml" /></a>
<a href="https://github.com/rsvim/rsvim/actions/workflows/ci.yml"><img alt="ci.yml" src="https://img.shields.io/github/actions/workflow/status/rsvim/rsvim/ci.yml?branch=main&label=ci" /></a>
<a href="https://app.codecov.io/gh/rsvim/rsvim"><img alt="codecov" src="https://img.shields.io/codecov/c/github/rsvim/rsvim/main" /></a>
<a href="https://discord.gg/5KtRUCAByB"><img alt="discord" src="https://img.shields.io/discord/1220171472329379870?label=discord" /></a>
</p>
> [!CAUTION]
>
> _**This project is still in the very early stages of development and not ready for use. Please choose alternatives [Neovim](https://neovim.io/) and [Vim](https://www.vim.org/).**_
## About
RSVIM is an open source terminal based text editor, built from scratch with [rust](https://www.rust-lang.org/), [tokio](https://tokio.rs/) and [V8](https://v8.dev/) javascript engine. It strives to be highly extensible by following the main features, concepts, philosophy of ([NEO](https://neovim.io/))[VIM](https://www.vim.org/), also to be:
- A fast editor that fully utilizes all CPU cores and never freezes.
- A powerful TUI engine that provides widgets, event handlers, layouts, etc.
- A consistent JavaScript-based runtime with built-in support for TypeScript.
- An editing service that allows multiple users to access remotely and work together.
- A text processing tool that integrates with the shell environment.
## Installation
Please download pre-built executables in [releases](https://github.com/rsvim/rsvim/releases) page, or build with cargo:
```bash
cargo install --locked rsvim
```
To get latest updates, build with git source on `main` branch:
```bash
cargo install --locked rsvim --git https://github.com/rsvim/rsvim.git --branch main
```
## Get Started
Please checkout [Documentation](https://rsvim.github.io/) for more details!
## Contribution
Contributions to RSVIM are always welcomed. A few guidelines that help quickly set up the development environment can be found in [DEVELOPMENT.md](https://github.com/rsvim/rsvim/blob/main/DEVELOPMENT.md).
Roadmap and high-level design can be found in [RFC](https://github.com/rsvim/rfc), please submit your ideas and designs there if they need fairly large efforts.
## Credits
Some source code is copied and referenced from following projects to implement the initial prototype of javascript runtime, and the [Minimum Common Web Platform API](https://min-common-api.proposal.wintertc.org/).
- [dune](https://github.com/aalykiot/dune): A hobby runtime for JavaScript and TypeScript.
- [deno](https://deno.com/): A modern runtime for JavaScript and TypeScript.
## Supporting the Project
If you like RSVIM, please consider sponsoring it. Your support encourages contributors and maintainers of this project, and other fees or efforts spent on it.
- [GitHub Sponsor](https://github.com/sponsors/rsvim)
- [Open Collective](https://opencollective.com/rsvim)
## License
Licensed under [Vim License](https://github.com/rsvim/rsvim/blob/main/LICENSE.txt).