โโ โโโโ โโ โโ โโโ โโ โโโ โโ โโ โโ โโ โโ โโ `rx` is a modern and minimalist pixel editor. Designed with great care and love with pixel artists and animators in mind. OVERVIEW `rx` is an extensible, modern and minimalist pixel editor implemented in rust[0]. rx is free software, licensed under the GPLv3. Most of the information on how to use rx is on the website: https://rx.cloudhead.io. There, you can also find a user guide (https://rx.cloudhead.io/guide.html), installation instructions, and binary download links. For discussions, join the community: https://rx.cloudhead.io/#community. To build rx from source, see the build sections below. Once inside rx, enter the `:help` command to get a list of key bindings and commands. [0]: https://rust-lang.org REQUIREMENTS At a minimum, OpenGL 3.3 support is required. BUILD DEPENDENCIES * rust (https://www.rust-lang.org/tools/install) * cmake (https://cmake.org/download/) On macOS, `Xcode` and the `Xcode Command Line Tools` are required. The latter can be obtained by running `xcode-select --install` CMake can be installed with `brew install cmake`. BUILD & INSTALLATION Before proceeding, make sure the BUILD DEPENDENCIES have been installed. Then, clone this repository and from its root, run: $ cargo install --locked --path . This will install rx under `~/.cargo/bin/rx`. If you prefer a different install location, you can specify it via the `--root <prefix>` flag, where <prefix> is for example '/usr/local'. CONTRIBUTING See the CONTRIBUTING file for details. Contributions are appreciated. USAGE See the guide at https://rx.cloudhead.io/guide.html. TROUBLESHOOTING If something isn't working like it's supposed to, there are various things you can do to debug the problem: * Run `rx` with verbose logging, by using the `-v` command-line flag. This will log errors from the underlying libraries that are usually suppressed, and will show debug output that might indicate what the problem is. * If `rx` is crashing, run it with `RUST_BACKTRACE=1` set in your environment to show a backtrace on crash. * It could be that the issue is related to your configuration - in that case the program can be run without loading the initialization script like so: rx -u - LICENSE This software is licensed under the GPL. See the LICENSE file for more details. COPYRIGHT (c) 2019 Alexis Sellier
๐พ Modern and minimalist pixel editor
Overview
Comments
-
Modifier keys + different keyboard layouts causing issues with keymappings
Related to #18
Windows 10, compiled with 1.38 stable. (
--vulkan
feature flag)rx does not go into command mode when writing
:
using a Swedish/Nordic keyboard layout (Shift + Period) and instead zooms in one level.It seems to recieve a colon in the
RecievedCharacter
event, but theKeyboardInput
contains a period.Logs:
type:bug[2019-09-30T13:57:01Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Shift), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }) [2019-09-30T13:57:01Z DEBUG rx::session] KeyboardInput { state: Pressed, key: Some(Shift), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } } [2019-09-30T13:57:01Z DEBUG rx::session] command: BrushSet(Multi) [2019-09-30T13:57:02Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }) [2019-09-30T13:57:02Z DEBUG rx] event: ReceivedCharacter(':') [2019-09-30T13:57:02Z DEBUG rx::session] KeyboardInput { state: Pressed, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } } [2019-09-30T13:57:02Z DEBUG rx::session] command: Zoom(Incr) [2019-09-30T13:57:02Z DEBUG rx::session] zoom: 1 -> 2 [2019-09-30T13:57:02Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Released, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }) [2019-09-30T13:57:02Z DEBUG rx::session] KeyboardInput { state: Released, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } } [2019-09-30T13:57:02Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Released, key: Some(Shift), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } }) [2019-09-30T13:57:02Z DEBUG rx::session] KeyboardInput { state: Released, key: Some(Shift), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } } [2019-09-30T13:57:02Z DEBUG rx::session] command: BrushUnset(Multi)
-
Frame cloning and sync editing
Full copying and pasting ability would be very useful ofc and I'm sure it's on the roadmap, but in the meantime two features would help a lot with the animation process:
- Frame cloning: add a new frame at the end (or even in the middle) with contents copied from another frame. Maybe a
f/clone
command with frame index? - Synchronous editing: propagate edits in a single frame to one or more other frames.
Maybe I can add the features myself and open some PRs if you like the idea? Let me know. Thank you for building and sharing this project, looks really promising and it's pleasing to use.
type:enhancement - Frame cloning: add a new frame at the end (or even in the middle) with contents copied from another frame. Maybe a
-
MacOS M1: GLFW Runtime Error
Cloning master and building with
cargo install --locked --path .
and running the resulting binary results in a blank window and the following error:GLFW Error: Cocoa: Failed to find service port for display
. Building from the stable branch as on the website using:cargo install \ --git https://github.com/cloudhead/rx \ --tag v0.4.0
Does not result in this error, the only thing I found related to this issue was the following GLFW issue that was fixed earlier this year: https://github.com/bjornbytes/lovr/pull/357
-
Implement selection flipping
Hi, this is my humble attempt at implementing the functionality to flip a selection. It was once again a pleasant experience as I really like the structure of the code, but I'm not sure if I'm doing it "idiomatically".
Here is a demonstration of how it looks: (yea, the colors are screwed because it's a gif, here's a webm for more pleasant viewing -> flip.webm)
This is what I did for these changes:
- create a command
selection/flip
which takes one argument of direction, valid values areh
orhorizontal
andv
orvertical
. - then I created a
ViewOp
for flip and went togl/mod.rs
to create an implementation. It's pretty much a yank, which also takes direction as an argument and then flips the pixels accordingly - In session.rs, I added appropriate functions taking yank as example. To allow possibly doing a bunch of flips with a hotkey, I figured the easiest would be doing it in the place of selection, so I did this:
Command::SelectionFlip(dir) => { self.flip_selection(dir); // I think its handy to flip in place for now, hence these commands // 1., 2. prevent overlap and paste // 3. preserve location so you can flip repeatedly w/ hotkey self.command(Command::SelectionErase); self.command(Command::SelectionPaste); self.command(Command::Mode(Mode::Visual(VisualState::Selecting { dragging: false }))); }
I'm really unsure if this is the correct way to do it, so I am sorry if I did something wrong, haha :sweat_smile:
- create a command
-
"gl" feature seems to be missing.
thread 'main' panicked at 'No adapters found. Please enable the feature for one of the graphics backends: vulkan, metal, dx12, dx11, gl', src/libcore/option.rs:1166:5
"gl"
cargo install --force --git https://github.com/cloudhead/rx --locked --features gl
Package
rx v0.1.0 (https://github.com/cloudhead/rx#465f95f4)does not have these features:
gl`` -
crash on open with linux
cargo install --git https://github.com/cloudhead/rx --locked
platform:linux topic:backendโณ ~ RUST_BACKTRACE=full rx -u - [2019-11-17T19:15:33Z INFO rx] framebuffer size: 1280x720 [2019-11-17T19:15:33Z INFO rx] hidpi factor: 2.2999980449676514 [2019-11-17T19:15:33Z INFO rx::session] rx v0.2.0 thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:378:21 stack backtrace: 0: 0x556f5ce1c524 - backtrace::backtrace::libunwind::trace::hda41dbcdfba36aa0 at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88 1: 0x556f5ce1c524 - backtrace::backtrace::trace_unsynchronized::h1a8d6e1f8cb3f5d4 at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66 2: 0x556f5ce1c524 - std::sys_common::backtrace::_print_fmt::h610c4127487e10da at src/libstd/sys_common/backtrace.rs:76 3: 0x556f5ce1c524 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h0722dc552e01bd1d at src/libstd/sys_common/backtrace.rs:60 4: 0x556f5ce3d21c - core::fmt::write::h01edf6dd68a42c9c at src/libcore/fmt/mod.rs:1030 5: 0x556f5ce19087 - std::io::Write::write_fmt::hf15985f193f03c04 at src/libstd/io/mod.rs:1412 6: 0x556f5ce1e7d5 - std::sys_common::backtrace::_print::hd8d5d08a1795e743 at src/libstd/sys_common/backtrace.rs:64 7: 0x556f5ce1e7d5 - std::sys_common::backtrace::print::hf89a79e3921a2366 at src/libstd/sys_common/backtrace.rs:49 8: 0x556f5ce1e7d5 - std::panicking::default_hook::{{closure}}::h3a8f42beb3bb8ae3 at src/libstd/panicking.rs:196 9: 0x556f5ce1e4c6 - std::panicking::default_hook::h8f803b0bc31a5c37 at src/libstd/panicking.rs:210 10: 0x556f5ce1ee75 - std::panicking::rust_panic_with_hook::h825f041245da8739 at src/libstd/panicking.rs:473 11: 0x556f5ce1ea12 - std::panicking::continue_panic_fmt::hbe0378e33481e81b at src/libstd/panicking.rs:380 12: 0x556f5ce1e906 - rust_begin_unwind at src/libstd/panicking.rs:307 13: 0x556f5ce3931a - core::panicking::panic_fmt::h527855ce0bc891f6 at src/libcore/panicking.rs:85 14: 0x556f5ce39259 - core::panicking::panic::h2f49f09cf859b728 at src/libcore/panicking.rs:49 15: 0x556f5cd5f86f - wgpu_request_adapter 16: 0x556f5cd5a4b7 - wgpu::Adapter::request::hc06a386463c80c30 17: 0x556f5cc265bc - rx::init::h3fab2ab361ffb234 18: 0x556f5cc343e8 - rx::main::ha967765a9e31cdfc 19: 0x556f5cc1d013 - std::rt::lang_start::{{closure}}::hc4ee2151b7bf7afb 20: 0x556f5ce1e8a3 - std::rt::lang_start_internal::{{closure}}::ha04574f12d97cbe2 at src/libstd/rt.rs:49 21: 0x556f5ce1e8a3 - std::panicking::try::do_call::h7c2a8488f72db90c at src/libstd/panicking.rs:292 22: 0x556f5ce214fa - __rust_maybe_catch_panic at src/libpanic_unwind/lib.rs:80 23: 0x556f5ce1f36d - std::panicking::try::hc3a9b5da4250385d at src/libstd/panicking.rs:271 24: 0x556f5ce1f36d - std::panic::catch_unwind::hf27600bf8c37809a at src/libstd/panic.rs:394 25: 0x556f5ce1f36d - std::rt::lang_start_internal::h409d4f2fe51133b0 at src/libstd/rt.rs:48 26: 0x556f5cc34a22 - main 27: 0x7f637cacab97 - __libc_start_main 28: 0x556f5cc1b2ca - _start 29: 0x0 - <unknown>
-
macOS fullscreen laggy
When going fullscreen on macOS moving the cursor becomes super slow. Weirdly this issue doesn't happen while screen recording is happening via QuickTime : D
The package was built via:
type:bug platform:macOSrx ยป cargo install --git https://github.com/cloudhead/rx --tag v0.2.0 --locked --features metal Updating git repository `https://github.com/cloudhead/rx` Installing rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4) Updating git repository `https://github.com/cloudhead/rendy` Updating crates.io index Downloaded directories v2.0.2 Downloaded png v0.15.0 Downloaded raw-window-handle v0.1.2 Downloaded gif v0.10.2 Downloaded deflate v0.7.20 Downloaded dirs-sys v0.3.4 Downloaded rgx v0.1.5 Downloaded inflate v0.4.5 Downloaded glfw v0.32.0 Downloaded color_quant v1.0.1 Downloaded snap v0.2.5 Downloaded lzw v0.10.0 Downloaded adler32 v1.0.3 Downloaded objc v0.2.6 Downloaded glfw-sys v3.3.0 Downloaded wgpu v0.3.0 Downloaded malloc_buf v0.0.6 Downloaded objc_exception v0.1.1 Downloaded zerocopy v0.2.8 Downloaded wgpu-native v0.3.3 Downloaded gcc v0.3.55 Downloaded cmake v0.1.41 Downloaded gfx-backend-empty v0.3.0 Downloaded gfx-backend-metal v0.3.0 Downloaded gfx-hal v0.3.0 Downloaded rendy-descriptor v0.4.0 Downloaded hibitset v0.6.2 Downloaded backtrace v0.3.34 Downloaded colorful v0.2.1 Downloaded derivative v1.0.2 Downloaded relevant v0.4.2 Downloaded zerocopy-derive v0.1.4 Downloaded fxhash v0.2.1 Downloaded cc v1.0.40 Downloaded foreign-types v0.3.2 Downloaded block v0.1.6 Downloaded cocoa v0.18.4 Downloaded range-alloc v0.1.0 Downloaded storage-map v0.2.0 Downloaded foreign-types-shared v0.1.1 Downloaded core-graphics v0.17.3 Downloaded metal v0.15.0 Downloaded objc-foundation v0.1.1 Downloaded atom v0.3.5 Downloaded spirv_cross v0.15.0 Downloaded objc_id v0.1.1 Compiling proc-macro2 v0.4.30 Compiling libc v0.2.62 Compiling unicode-xid v0.1.0 Compiling gcc v0.3.55 Compiling syn v0.15.44 Compiling cc v1.0.40 Compiling semver-parser v0.7.0 Compiling core-foundation-sys v0.6.2 Compiling bitflags v1.1.0 Compiling foreign-types-shared v0.1.1 Compiling byteorder v1.3.2 Compiling failure_derive v0.1.5 Compiling rustc-demangle v0.1.16 Compiling cfg-if v0.1.9 Compiling log v0.4.8 Compiling memchr v2.2.1 Compiling block v0.1.6 Compiling arrayvec v0.4.11 Compiling smallvec v0.6.10 Compiling scopeguard v1.0.0 Compiling atom v0.3.5 Compiling nodrop v0.1.13 Compiling gfx-backend-metal v0.3.0 Compiling copyless v0.1.4 Compiling colorful v0.2.1 Compiling range-alloc v0.1.0 Compiling slab v0.4.2 Compiling autocfg v0.1.5 Compiling lazy_static v1.3.0 Compiling crc32fast v1.2.0 Compiling regex-syntax v0.6.11 Compiling quick-error v1.2.2 Compiling vec_map v0.8.1 Compiling adler32 v1.0.3 Compiling unicode-width v0.1.5 Compiling termcolor v1.0.5 Compiling color_quant v1.0.1 Compiling lzw v0.10.0 Compiling semver v0.9.0 Compiling foreign-types v0.3.2 Compiling cmake v0.1.41 Compiling lock_api v0.3.1 Compiling hibitset v0.6.2 Compiling thread_local v0.3.6 Compiling humantime v1.2.0 Compiling inflate v0.4.5 Compiling textwrap v0.11.0 Compiling gif v0.10.2 Compiling rustc_version v0.2.3 Compiling num-traits v0.2.8 Compiling storage-map v0.2.0 Compiling objc_exception v0.1.1 Compiling parking_lot_core v0.6.2 Compiling parking_lot v0.9.0 Compiling clap v2.33.0 Compiling malloc_buf v0.0.6 Compiling core-foundation v0.6.4 Compiling raw-window-handle v0.1.2 Compiling atty v0.2.13 Compiling dirs-sys v0.3.4 Compiling quote v0.6.13 Compiling fxhash v0.2.1 Compiling deflate v0.7.20 Compiling snap v0.2.5 Compiling aho-corasick v0.7.6 Compiling directories v2.0.2 Compiling core-graphics v0.17.3 Compiling backtrace-sys v0.1.31 Compiling spirv_cross v0.15.0 Compiling glfw-sys v3.3.0 Compiling png v0.15.0 Compiling regex v1.2.1 Compiling objc v0.2.6 Compiling objc_id v0.1.1 Compiling cocoa v0.18.4 Compiling env_logger v0.6.2 Compiling objc-foundation v0.1.1 Compiling synstructure v0.10.2 Compiling backtrace v0.3.34 Compiling metal v0.15.0 Compiling relevant v0.4.2 Compiling glfw v0.32.0 Compiling derivative v1.0.2 Compiling zerocopy-derive v0.1.4 Compiling failure v0.1.5 Compiling gfx-hal v0.3.0 Compiling zerocopy v0.2.8 Compiling rendy-memory v0.4.0 (https://github.com/cloudhead/rendy#e08b64fb) Compiling rendy-descriptor v0.4.0 Compiling gfx-backend-empty v0.3.0 Compiling wgpu-native v0.3.3 Compiling wgpu v0.3.0 Compiling rgx v0.1.5 Compiling rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4) Finished release [optimized] target(s) in 3m 14s Installing /Users/rudolfs/.cargo/bin/rx Installed package `rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4)` (executable `rx`)
-
Segmentation fault
Windows 10 build crashes with SegFault:
rx$ cargo run Finished dev [unoptimized + debuginfo] target(s) in 0.14s Running `target\debug\rx.exe` [2019-11-07T21:23:56Z INFO rx::session] rx v0.2.0 error: process didn't exit successfully: `target\debug\rx.exe` (exit code: 0xc0000005, STATUS_ACCESS_VIOLATION) Segmentation fault
Windows information
OS Name: Microsoft Windows 10 Home OS Version: 10.0.18362 N/A Build 18362
Rust toolchain details
type:bug platform:windowsDefault host: x86_64-pc-windows-msvc rustup home: C:\Users\pavlo\.rustup installed toolchains -------------------- stable-x86_64-pc-windows-gnu stable-x86_64-pc-windows-msvc (default) nightly-x86_64-pc-windows-msvc active toolchain ---------------- stable-x86_64-pc-windows-msvc (default) rustc 1.39.0 (4560ea788 2019-11-04)
-
Adding the option to save and load .bmp images
I saw your project on HN and was inspired to try writing in Rust and making some contributions to your nifty pixel editor.
Specifically, this PR adds the option to load and save bitmap image files using the image crate library. The way this is handled is that this checks if the file suffix is
.bmp
during save and load.I have ran some quick tests on my system and it seems to work, but let me know what you think.
Thanks again :)
-
Can't go into command mode due to the way input is received
In my country's layout (and US english too I think) I write colon by shift-. but
rx
doesn't register it as a colon, but by pressing and releasing shift and period, so I can't enter command mode :(- version used: latest from repository
- target triplet: x86_64-pc-linux-gnu
- OS: Artix Linux (s6) 64-bit
- WM: dwm (so Xorg)
output from verbose logging
DEBUG [rx::session] command: BrushUnset(Multi) DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Shift), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } }) DEBUG [rx::session] command: BrushSet(Multi) DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }) DEBUG [rx] event: ReceivedCharacter(':')
(it says received character :, but it's not switching to command mode)
type:bug -
Framebuffer size is incorrect on Linux with HiDPI display
I've created a new issue so we could figure this one out on here. Could you remind me which line I should edit to better test the cursor positioning bug. I use a wacom intuos 3 tablet btw.
Issue
When I move over the canvas with the wacom pencil, there is an offset from the screen position, and the canvas position.
type:bug platform:linux -
RX wont open, installed from cargo
This is the rust backtrace thread 'main' panicked at 'called
Option::unwrap()
on aNone
value', C:\Users\notar.cargo\registry\src\github.com-1ecc6299db9ec823\wgpu-native-0.4.3\src\instance.rs:474:5 stack backtrace: -
Add status line trimming
Fix/basic implementation of #112. Automatically pulls characters from the status string and replaces them with "...". This method does have the downside of showing the full status string if the window is resized small enough, however I presume the average user isn't going to be doing this, so it shouldn't matter.
Important to note that this is not configurable currently, but configurable behavior could be feasibly added on in the future.
-
Remove `mutable_borrow_reservation_conflict` allow
warning: lint `mutable_borrow_reservation_conflict` has been removed: now allowed, see issue #59159 <https://github.com/rust-lang/rust/issues/59159> for more information --> src/session.rs:2681:21 | 2681 | #[allow(mutable_borrow_reservation_conflict)] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(renamed_and_removed_lints)]` on by default warning: `rx` (lib) generated 1 warning
This lint has been removed. See https://github.com/rust-lang/rust/issues/59159. This removes the allow for this now non-existent lint. ๐
-
Handle delete key in cmdline
If there is a character after the cursor delete that, otherwise delete the current character.
If the deletion should be only delete the character after the cursor these change must be made:
fn cmdline_handle_delete(&mut self) { if self.cmdline.cursor_forward().is_some() { self.cmdline.delc(); } if self.cmdline.is_empty() { self.cmdline_hide(); } }
-
Bump generic-array from 0.12.3 to 0.12.4
Bumps generic-array from 0.12.3 to 0.12.4.
Changelog
Sourced from generic-array's changelog.
-
0.12.4
- Fix unsoundness in the
arr!
macro.
- Fix unsoundness in the
-
0.12.0
- Allow trailing commas in
arr!
macro. - BREAKING: Serialize
GenericArray
usingserde
tuples, instead of variable-length sequences. This may not be compatible with old serialized data.
- Allow trailing commas in
-
0.11.0
- BREAKING Redesign
GenericSequence
with an emphasis on use in generic type parameters. - Add
MappedGenericSequence
andFunctionalSequence
- Implements optimized
map
,zip
andfold
forGenericArray
,&GenericArray
and&mut GenericArray
- Implements optimized
- BREAKING Remove
map_ref
,zip_ref
andmap_slice
map_slice
is now equivalent toGenericArray::from_iter(slice.iter().map(...))
- BREAKING Redesign
-
0.10.0
- Add
GenericSequence
,Lengthen
,Shorten
,Split
andConcat
traits. - Redefine
transmute
to avert errors.
- Add
-
0.9.0
- Rewrite construction methods to be well-defined in panic situations, correctly dropping elements.
NoDrop
crate replaced byManuallyDrop
as it became stable in Rust core.- Add optimized
map
/map_ref
andzip
/zip_ref
methods toGenericArray
-
0.8.0
- Implement
AsRef
,AsMut
,Borrow
,BorrowMut
,Hash
forGenericArray
- Update
serde
to1.0
- Update
typenum
- Make macro
arr!
non-cloning - Implement
From<[T; N]>
up toN=32
- Fix #45
- Implement
-
0.7.0
- Upgrade
serde
to0.9
- Make
serde
withno_std
- Implement
PartialOrd
/Ord
forGenericArray
- Upgrade
-
0.6.0
- Fixed #30
- Implement
Default
forGenericArray
- Implement
LowerHex
andUpperHex
forGenericArray<u8, N>
- Use
precision
formatting field in hex representation - Add
as_slice
,as_mut_slice
- Remove
GenericArray::new
in favor ofDefault
trait - Add
from_slice
andfrom_mut_slice
no_std
andcore
for crate.
-
0.5.0
- Update
serde
- remove
no_std
feature, fixed #19
- Update
-
0.4.0
- Re-export
typenum
- Re-export
-
0.3.0
- Implement
IntoIter
forGenericArray
- Add
map
method - Add optional
serde
(de)serialization support feature.
- Implement
-
< 0.3.0
... (truncated)
Commits
42843cd
Bump version59dad41
Fixed lifetime unsoundness inarr
macro.- See full diff in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase
will rebase this PR@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it@dependabot merge
will merge this PR after your CI passes on it@dependabot squash and merge
will squash and merge this PR after your CI passes on it@dependabot cancel merge
will cancel a previously requested merge and block automerging@dependabot reopen
will reopen this PR if it is closed@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the Security Alerts page.
-
Releases(v0.5.2)
-
v0.5.2(Aug 15, 2021)
-
v0.4.0(Feb 4, 2020)
-
v0.3.2(Jan 11, 2020)
-
v0.3.1(Jan 8, 2020)
Distributed compute platform implemented in Rust, and powered by Apache Arrow.
Ballista: Distributed Compute Platform Overview Ballista is a distributed compute platform primarily implemented in Rust, powered by Apache Arrow. It
A secure JavaScript and TypeScript runtime
Deno Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Features Secure by default. No file,
Provides a single TUI-based registry for drm-free, wine and steam games on linux, accessed through a rofi launch menu.
eidolon A conversion of steam_suite to rust with additional features. Provides a single TUI-based registry for drm-free, wine and steam games on linux
A Rust serverless function to retrieve and relay a playlist for Twitch livestreams/VODs.
City17 A Rust serverless function to retrieve and relay a playlist for Twitch livestreams/VODs. By running this in specific countries and using a brow
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,
Marko Editor is a simple WYSIWYG editor for note taking.
Marko Editor Marko Editor is a simple WYSIWYG editor for note taking written in Rust and GTK 4. It uses Markdown as storage format and can read simple
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
Dip editor: Multi-platform Text editor purely written in Rust
dip editor Multi-platform Text editor purely written in Rust, supercharged by Bevy game engine and Dioxus UI framework. heavily in development Why Gam
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
Extensible open world rogue like game with pixel art. Players can explore the wilderness and ruins.
Rusted Ruins Extensible open world rogue like game with pixel art. Players can explore the wilderness and ruins. This game is written in Rust. Screens
A minimalist and safe ECS library for rust!
The full ECS (Entity-Component-System) library. Support an Open Source Developer! โฅ๏ธ Composed of two smaller libraries: world_dispatcher: the System p
Pixel-Perfect, 2D Renderer for Bevy that Seamlessly Targets Desktop and Web
bevy_retro ( Screenshot of Bounty Bros. game made with Bevy Retro and Skip'n Go ) Bevy Retro is a 2D, pixel-perfect renderer for Bevy that can target
A simple command-line utility (and Rust crate!) for converting from a conventional image file (e.g. a PNG file) into a pixel-art version constructed with emoji
EmojiPix This is a simple command-line utility (and Rust crate!) for converting from a conventional image file (e.g. a PNG file) into a pixel-art vers
Very minimalist tmux status bar that displays used memory and CPU usage.
woot-bar Ultra minimalist status bar that displays used memory and CPU usage woot-bar is made for tmux but it is compatible with anything that eats st
Sub-pixel precision light spot rendering library for astronomy and video tracking applications.
Planetarium Sub-pixel precision light spot rendering library for astronomy and video tracking applications. Example usage use planetarium::{Canvas, Sp
Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita
Sandbox Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita. It's also a precursor for an ongoing game project. Sandb
A framebuffer that takes a `&[bool]` slice and returns 2x4 dot (pixel) braille `char`s
A framebuffer that takes a &[bool] slice and returns 2x4 "dot" (pixel) braille chars.
Simple and minimalist forward auth service intended for use with reverse proxies (Traefik, Caddy, nginx, etc)
nforwardauth nforwardauth is an extremely lightweight, blazing fast forward auth service that lets you use a single authentication middleware for all
Rust low-level minimalist APNG writer and PNG reader with just a few dependencies with all possible formats coverage (including HDR).
project Wiki https://github.com/js29a/micro_png/wiki at glance use micro_png::*; fn main() { // load an image let image = read_png("tmp/test.
Rust bindings to the minimalist, native, cross-platform UI toolkit `libui`
Improved User Interface A cross-platform UI toolkit for Rust based on libui iui: ui-sys: iui is a simple (about 4 kLOC of Rust), small (about 800kb, i