February 2024 Rustacean Meetup

February 2024 Rustacean Meetup

This will be an in person meetup, and we are happy to accept submissions for talks, if any.

Anyone interested in Rust is welcomed to join. While we will have no specific agenda, attendees can discuss, speak or ask about

  • Get help or clarification on any specific topic or question
  • Speak about a project or something you are working or looking to work on
  • Share any specific experience on using Rust in any of your projects
  • Discuss any book/topic/library/blog in Rust
  • Want to propose a reading group?
  • Anything Rust

Hosted by

A community of rust-lang contributors and end-users from Bangalore. We also have presence on the following telegram channels https://t.me/RustIndia https://t.me/keralars https://t.me/fpncr Twitter handle: https://twitter.com/rustlangin more
Kushashwa Ravi Shrimali (Kush)

Kushashwa Ravi Shrimali (Kush)

@krshrimali

Context Pilot - A tool for developers - built in Rust! Find all the context at your ~door~ code step

Submitted Jan 19, 2024

Motivation

Imagine going through a huge repository and trying to find who you should reach out to, or which files to look at - to try and understand the context. Context Pilot does it for you, currently supported for neovim and Visual Studio Code.

Use Case:

  • You are adding a dependency, or changing in your infra code, but don’t know what else to change to ship the code.
  • You are going through an auto-generated code, trying to find the proto definition of an auto-generated class.
  • You are going through a code, but don’t know what it’s about - you need to reach out to someone to help guide you through. But who is/are the best person(s) for this?

For all these cases, LSP doesn’t give you the best results. LSP References work purely on the “uses”/“references”, while context pilot will help you get context on this.

Plan

  • Introduction (includes Motivation and use-cases)
  • Demo of Context Pilot in VSCode and NeoVim
  • Sharing algorithm used for Context Pilot
  • Sharing features implemented so far
  • Talk about performance impact (includes in-house DB sharding implementation)
  • How to take your binary to users? (this includes a demo of how neovim plugin and VSCode extension communicated with the Context Pilot utility)
  • Future steps (it’s open sourced)

Why should you attend this talk?

  • It’s something that any develop would like using.
  • If you plan to develop a tool in Rust and want your frontend editors to be able to connect with your backend utility, this talk will help you with that. NeoVim’s plugin written in Lua communicates with the context pilot binary, similarly for VSCode (written in typescript).
  • This project has huge learning curve + opportunities to contribute, so if you are getting started with Rust or are already confident about it, Context Pilot is open to grabs for features/bug fixes.
  • None of this is click-bait, and everything was developed live on my channel (really not promoting it here, but just saying since it’s true)

Please note that this took me more than 7 months of development, I wanted to present this before but that would have been immature to present as things with Context Pilot were still evolving. :)

What will you learn from this talk?

Disclaimer: I don’t think I’m the best person to teach something, and meetups are - very honestly to teach but to spark an idea and initiate a discussion with all the attendees. Nonetheless, I hope that after this talk:

  1. You’ll have more ideas on how you can take your ideas to the end-user. A lot of us have great ideas in mind, either built using Rust or any other language, but after this talk - you might end up going back to your system and implement a plugin for users to actually use it.
  2. You’ll have an opportunity to contribute to this project and help take it to the users.
  3. I’ve implemented concepts like DB Sharding from scratch, I hope to debate with y’all on why and how I did it.
  4. You’ll also know a bit about NeoVim plugin integration with this utility and VSCode extension integration with Context Pilot.

Pre-requisites?

As I always say, Rust community is very welcoming, so I just look forward to hearing y’all out on thoughts on this. No pre-requisites as such, but I would appreciate it if we all come with an open and creative mind to be open to hearing out on ideas and giving feedback (constructive, of course) :)

Who is Kushashwa?

Well, you can find more about me on my profiles below:

  1. YouTube: https://youtube.com/c/kushashwaraviShrimali
  2. Twitter: https://twitter.com/kushashwa
  3. Blog: https://krshrimali.github.io/
  4. GitHub: https://github.com/krshrimali
  5. Twitch: https://twitch.tv/buffetcodes

Context Pilot has been open-sourced since it’s beginning. Please find the code-base here: https://github.com/krshrimali/context-pilot-rs. The plugins are open sourced as well (not sharing the links here as I want viewers/attendees to have less noise in terms of number of links to click on)

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

A community of rust-lang contributors and end-users from Bangalore. We also have presence on the following telegram channels https://t.me/RustIndia https://t.me/keralars https://t.me/fpncr Twitter handle: https://twitter.com/rustlangin more