Dip editor: Multi-platform Text editor purely written in Rust

Related tags

Text editors dip

dip editor

Multi-platform Text editor purely written in Rust, supercharged by Bevy game engine and Dioxus UI framework.

  • heavily in development

Why Game Engine?

Bevy is known as a game engine but with its extensible plugin structure and remarkable ECS plugin, it could be used for not only games but anything such as this project.

What is Dioxus?



# Desktop
cargo run -p dip_desktop
  • Only depend on core_foundation for macos

    Only depend on core_foundation for macos

    Fixes issue #19


    bevy_dioxus_desktop would not build on Windows because core_foundation was not limited to the macos target.


    Updated bevy_dioxus_desktop to only use core_foundation as a dependency on macos.

    Further Work Needed

    Ensure bevy_dioxus_desktop still builds on macos.

    opened by ImDanTheDev 2
  • PoC: Version Manager Plugin

    PoC: Version Manager Plugin

    Close #130

    • [x] Bootstrap Plugin
    • [x] Setup BundleConfigPlugin
      • [x] Replace ConfigPlugin macro with struct with type parameter
    • [x] Where to place bundle repository in local file system?
      • specify in bundle config
      • $HOME/Library/Application\ Support/dip/bundle.toml
    • [x] Merge config file value with cli arguments
    • [x] PoC of apply system with common tools just to see how it ends up
      • [x] Tailwind CSS
      • [x] Node.js
    • [x] trait Bundler and trait VersionManager
    • [x] Shim ($PATH)
    • [x] Cleanup
      • [x] resource.rs: may not be possible without putting build handler back
      • [x] tool.rs
      • [x] bundle config.rs
    opened by JunichiSugiura 1
  • Docs: Add Obsidian handbook

    Docs: Add Obsidian handbook

    User story

    As a developer, I want a handbook that describes everything about dip organization. Everyone related to this project even not an engineer should be able to read or edit easily.

    • Single source of truth
      • Inspired by Gitlab Handbook
      • Docs, wikis, meeting minutes, everything should be documented here
      • If you happened to explain the same thing again and again to different people, it means you are missing handbook page
    • Markdown + git
      • No vendor lock-in
      • Flexible technical stack
    • Obsidian compatibility
      • Easy reading/editing experience for both dev and non-dev people
    opened by JunichiSugiura 1
  • Expose config builder as resource

    Expose config builder as resource

    • #115

    requires: https://github.com/mehcode/config-rs/pull/379

    To allow developers to configure custom config sources from systems.

    This PR also replaces config_plugin attribute macro with ConfigPlugin derive macro. All attribute options are still available via ConfigPlugin's builder methods.

                .default_paths(false) // default: true
                .env_prefix("APP")  // default: ""
                .env_separator("___") // default: "__"
                .default_from_str(include_str!("config/default.yaml")) // default: include_str!("config/default.toml")
                .default_file_format(config::FileFormat::Yaml) // default: Toml
    #[derive(ConfigPlugin, Debug, Deserialize)]
    struct Config {
        // ...
    // add custom source to builder
    fn add_config_source(mut builder: ResMut<ConfigBuilder<DefaultState>>) {
        *builder = builder
    fn log_config(config: Res<Config>) {
        println!("{:#?}", *config);
    opened by JunichiSugiura 1
  • Config support

    Config support


    • [x] config_plugin macro
    • [x] default file source included in binary
      • [x] default path: config/default.toml
      • [x] override default config file path and file type by macro attributes
    • [x] override config file with ENV
    • [x] look for user config file and override default config
      • [x] default
        • ./{CARGO_PKG_NAME}
        • $HOME/.{CARGO_PKG_NAME}
        • $HOME/.config/{CARGO_PKG_NAME}/{CARGO_PKG_NAME}
        • $HOME/.config/{CARGO_PKG_NAME}
      • [x] override user config file path
    • [x] override by environmental variable
      • [x] prefix
      • [x] separator
    opened by JunichiSugiura 1
  • The configuration file is $HOME/bundle or ~/Library/Application Support/dip/bundle ?

    The configuration file is $HOME/bundle or ~/Library/Application Support/dip/bundle ?

    os: macOS Big Sur 11.7.2 & Intel core

    cargo install dip (version 0.2.1) It was '~/Library/Application Support/dip/bundle' that worked.

    setting files = 'https://github.com/nuovotaka/TakahiroNatsume/tree/main/bundle' I don't think they installed Homebrew and nodejs. They did post a link.

    スクリーンショット 2022-12-20 10 25 18 スクリーンショット 2022-12-20 10 25 37 スクリーンショット 2022-12-20 10 26 15
    opened by nuovotaka 3
  • v0.2.1(Dec 19, 2022)

  • v0.2.0(Dec 17, 2022)

    v0.2 is a big update. Many things changed including package name itself. This is the first somewhat usable version but many things are still missing for practical usage. I will continue incrementing v0.2.x including breaking changes until we cover enough use cases.


    • UiAction Plugin (rebrand from CoreCommand) #40
    • Introduce CLI Plugin #76
    • Rename packages to dip #94
      • ~v0.1: bevy_dioxus
      • v0.2~: dip
    • async/await support #114
    • Configuration support #115
    • CLI: Bundle subcommand #129
    • Version Manager Plugin #130

    Bug Fixes

    • Infinite render cycle on application mode #33
    • app.update() gets called too often in Application mode #39
    • 1 frame delay on ui #46
    • Remove unnecessary redraw request #59


    • Upgrade dependencies #30
    • Refine global state API #31
    • Export dioxus and bevy as sub module #37
    • Change file names from kebab-case to snake_case #49
    • Separate Virtual DOM logic from DioxusPlugin #50
    • Use trace instead of debug for even loop related logs #56
    • UiStage should be exported from core instead of desktop #57
    • Add CI action to check Rust format #63
    • Revise channel library (switch to mpsc) #70
    • Insert ui state as resource and system to react to changes #71


    • Add TodoMVC example to showcase practical usage #38


    • Add sequence diagram about rendering cycle in docs #52
    • Change domain to dip.tools #77
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Jul 16, 2022)


    • Set global state from core via fermi #8

    Bug Fixes

    • Release build issue #15
    • Windows build issue #19


    • Provide keyboard_event option via DioxusSettings and get rid of JS file #9


    • Provide example for window management #10


    • Write docs with examples at least for exposed modules #2
    Source code(tar.gz)
    Source code(zip)
Junichi Sugiura
Junichi Sugiura
A terminal-based text editor written in Rust

Iota Iota is a terminal-based text-editor written in Rust. Here's what it looks like right now, editing itself. Motivation Iota was born out of my fru

Greg Chapple 1.6k Jan 8, 2023
A text editor in ≤1024 lines of code, written in Rust

Kibi: A text editor in ≤1024 lines of code, written in Rust A configurable text editor with UTF-8 support, incremental search, syntax highlighting, li

Ilaï Deutel 881 Dec 29, 2022
Web base text editor written in rust

Ultron Ultron is a web based monospace text-editor with syntax highlighting, completely written in rust. I wrote this code editor for my very specific

Jovansonlee Cesar 59 Aug 8, 2022
An independent Rust text editor that runs in your terminal!

Ox editor Ox is a code editor that runs in your terminal. About The Project Ox is a code editor. It was written in Rust using ANSI escape sequences. I

null 2.9k Jan 2, 2023
Ginkgo is a text editor built entirely in Rust

Ginkgo is a text editor built entirely in Rust. It supports cursor movements, CTRL commands, select vim commands, insert vs. normal modes, and more. Ginkgo is based on my text editor JED, which itself was based on the popular online editor Kilo.

James Asbury 12 Oct 15, 2022
TIF is a terminal_image_format. (theres no TIF editor, so i made TIF images through a hex editor lol)

Colors these are the colors you can use when displaying images on the terminal BYTES: 5A = BLUE 5B = BLACK 5C = RED 5D = GREEN 5E = PURPLE 5F = WHITE

buzz 5 Dec 23, 2022
Aspiring vim-like text editor

Rim Rim is an aspiring Vim-like text editor written in Rust. Current state Rim is in an early prototype stage. This means that you can load, edit and

Mathias Hällman 557 Jan 2, 2023
An experimental next-generation Electron-based text editor

Attention: GitHub has decided not to move forward with any aspect of this project. We'll archive the repository in case anybody finds value here, but

Atom Archive 8.5k Dec 26, 2022
Archeum - a minimalist text editor

Archeum About The Project Archeum is a minimalist text editor that is really usefull if you've been in the vim psychosis for to long. Reject plugins,

null 4 Jul 1, 2022
(An attempt to write) a modal text editor

kaka (An attempt to write) a modal text editor. NOTE: The project is very young and certainly not ready for use. Current project goals keymap and mode

Marcin Pajkowski 4 Aug 15, 2022
A modern editor with a backend written in Rust.

Xi Editor (pronounced "Zigh") A modern editor with a backend written in Rust. Maintenance status: The xi-editor project is not currently under active

null 19.7k Jan 5, 2023
Lightning-fast and Powerful Code Editor written in Rust

Lapce Lightning-fast and Powerful Code Editor written in Rust About Lapce is written in pure Rust, with UI in Druid. It's using Xi-Editor's Rope Scien

Lapce 22.1k Jan 8, 2023
A collision editor for Guilty Gear -Strive-, written in Rust

ggst_collision_editor_rs A collision editor for Guilty Gear -Strive- and other Team Red Arc System Works games, written in Rust. Uses a customized ver

null 4 May 3, 2022
Helix - A kakoune / neovim inspired editor, written in Rust

A kakoune / neovim inspired editor, written in Rust. The editing model is very heavily based on kakoune; during development I found myself agree

null 17.9k Jan 10, 2023
A pathtracer written in rust - runs in the web and includes an editor

Webtracer A pathtracer written in rust - runs in the web and includes an editor Rendering is parallelized and utilizes all cpu cores You can easily ed

Shapur 5 Oct 7, 2022
Rust-based traffic editor for RMF

Traffic Editor III Welcome to Traffic Editor III. install stuff Unfortunately we need a newer Rust than what comes with Ubuntu 20.04. First make sure

null 2 Oct 20, 2022
My own personal code editor built with Rust + OpenGL

Glyph This is my personal code editor that I am building for fun and to get more familiar with OpenGL. Glyph currently supports Vim keybinds, syntax h

Zack Radisic 83 Dec 23, 2022
A simple terminal-based editor made in rust!

ELuna Editor The terminal-based editor for europa lang. Goals Be as minimal as possible, but retain conveniences found in other editors. Do not add fe

Junhao 3 May 25, 2022
syntect is a syntax highlighting library for Rust that uses Sublime Text syntax definitions.

syntect is a syntax highlighting library for Rust that uses Sublime Text syntax definitions. It aims to be a good solution for any Rust project that needs syntax highlighting, including deep integration with text editors written in Rust.

Tristan Hume 1.5k Jan 8, 2023