tokio-uring
rust.vim
Our great sponsors
tokio-uring | rust.vim | |
---|---|---|
28 | 23 | |
995 | 3,785 | |
2.5% | 0.8% | |
4.1 | 0.0 | |
about 2 months ago | 20 days ago | |
Rust | Vim Script | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tokio-uring
- tokio_fs crate
-
Use io_uring for network I/O
While Mio will probably not implement uring in its current design, there's https://github.com/tokio-rs/tokio-uring if you want to use io_uring in Rust.
It's still in development, but the Tokio team seems intent on getting good io_uring support at least!
As the README states, the Rust implementation requires a kernel newer than the one that shipped with Ubuntu 20.04 so I think it'll be a while before we'll see significant development among major libraries.
-
Create a data structure for low latency memory management
That's what the pool is for: https://github.com/tokio-rs/tokio-uring/blob/master/src/buf/fixed/pool.rs
-
Cloudflare Ditches Nginx for In-House, Rust-Written Pingora
Tokio supports io_uring (https://github.com/tokio-rs/tokio-uring), so perhaps when it's mature and battle-tested, it'd be easier to transition to it if Cloudflare aren't using it already.
-
Anyone using io_uring?
- Tokio suffers from a similar problem
-
redb 0.4.0: 2x faster commits with 1PC+C instead of 2PC
Eg via tokio-uring.
-
Efficient way to read multiple files in parallel
I strongly recommend you to look into io-uring and use async executors that take advantages of it: - tokio-uring (not recommended as it is still undergoing development) - monoio - glommio
-
Stacked Futures and why they are impossible
This is my thinking as well. Specifically, I realized that if you don’t use tasks, but rather futures and join, than structured concurrency just works out (at the cost of less efficient poll). In a single-threaded/thread-per-core runtime, tasks could have the same semantics as futures. Somewhat elaborated here: https://github.com/tokio-rs/tokio-uring/issues/81
-
How to use async Rust for non-IO tasks?
There's a new API on Linux called io_uring that has performance benefits, but most executors don't use it yet, except executors meant specifically to harness the power of io_uring like tokio-uring and Glommio
-
Side effects of Tokio
Breaking it down a bit further- Rust's async is zero-cost, and there's no way to write faster equivalent code to the language construct in Rust (and presumably other LLVM languages). Tokio introduces abstractions over OS APIs (indirectly) and provides a runtime. The runtime isn't zero cost, but it is likely to be better optimized for "standard" situations than a homebrewed solution, and its primary competition is in the form of other large async runtimes. On the other hand, Tokio's IO routines are (AFAIK) about as well written as one can get with blocking OS APIs, and the only competitors in that space are projects like tokio-uring that use APIs more well suited for asynchronous usage.
rust.vim
-
How to prevent rust-analyzer (rust lsp) from checking code on each save
I am using rustaceanvim and rust.vim.
-
Issue with syntax highlighting in rust with rust-analyzer
When the file first loads, it uses the syntax defined in the $VIMRUNTIME/syntax/rust.vim file from rust.vim, which is what I want, but after a few seconds (probably once rust-analyzer loads and runs), it changes the highlighting to use different colours (there's probably a better way to describe it, but a video is easier to show). This colour change also happens when I write the file (and rust-analyzer runs again).
-
Can’t run specific test via LSP
Or this https://github.com/rust-lang/rust.vim, it has example with running tests
-
Struggling to get basic diagnostic working with LSP
If you need basic syntax checking on leaving insert mode (without saving file), https://github.com/rust-lang/rust.vim can be used
-
Is it possible to have Rust doc test comments highlighted in Neovim?
Seems like there's a tree-sitter solution, but I do want to note that this works out of the box with rust.vim: https://github.com/rust-lang/rust.vim/issues/63. It might be the built-in Rust support is out of date -- using that repo as a plugin would do the trick.
-
Default mappings override user mappings in Rust ( [[ and ]] mappings )
Most of the customizations in the $VIMRUNTIME's rust ftplugin are guarded behind a flag (g:rust_fold, g:rustfmt_autosave,g:rust_recommended_style, etc.) to control enabling and disabling them, but for some reason the navigation mappings are unconditionally defined, with no flag to turn them off... It might be worth going through the issues in https://github.com/rust-lang/rust.vim to see if that ever came up before.
-
Config For rust dev
Is having rust.vim necessary if I'm using rust-tools already?
-
Need help for setting up neovim.
Primeagen has a series, you could also try spacevim or lunarvim( i prefer lunarvim). If you want to read the docs and setup yourself 1. lsp and code completion mentioned in #5. 2. treesitter 3. lsp handles that, you have to install java's lsp, this improves its look. 4. Make your own remaps, some languages have a plugin for this but i can't find one for java, this is the one for rust. 5. Install cmp and one of the snippet engines.
-
Rust with Vim
writing rust is the same regardless of which editor you use and using vim is the same regardless of what programming language you are in, so i dont think you need a tutorial neccissarily. ive been using this plugin for rust-specific features https://github.com/rust-lang/rust.vim
-
Configure NeoVim for Rust Dev
As for plugins for Rust development, I’d recommend Conquer of Completion (using the coc-rust-analyser coc plugin), Rust lang’s rust plugin, and the Toml plugin
What are some alternatives?
libuv - Cross-platform asynchronous I/O
Clippy - A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/
glommio - Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.
coc-rust-analyzer - rust-analyzer extension for coc.nvim
liburing
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
monoio - Rust async runtime based on io-uring.
YouCompleteMe - A code-completion engine for Vim
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
Rustlings - :crab: Small exercises to get you used to reading and writing Rust code!
diesel_async - Diesel async connection implementation
refactoring.nvim - The Refactoring library based off the Refactoring book by Martin Fowler