Console #161 -- Interview with Sanskar of Robyn - a Python Web Framework with a Rust runtime
Featuring Audiocraft, Invidious, and AI For Beginners
🤝 Sponsor
This space is reserved for sponsors that support us to keep the newsletter going! Want to support Console? Send us a note at osh@codesee.io
🏗️ Projects
Browse through open source projects on OpenSourceHub.io, add your project to get more exposure and connect with other maintainers and contributors!
🎵 Audiocraft
Audiocraft is a PyTorch library for deep learning research on audio generation. It contains the code for MusicGen, a state-of-the-art controllable text-to-music model.
language: Python stars: 2258 last commit: Today
repo: github.com/facebookresearch/audiocraft
📹 Invidious
Invidious is a privacy focused open source alternative front-end to YouTube.
language: Crystal stars: 10832 last commit: April 20, 2022
repo: github.com/iv-org/invidious
site: invidious.io
🤖 AI For Beginners
12 Weeks, 24 Lessons, AI for beginners course by Microsoft.
language: Python stars: 9359 last commit: a week
repo: github.com/microsoft/AI-For-Beginners
site: microsoft.github.io/AI-For-Beginners/
💻 Robyn
A High-Performance, Community-Driven, and Innovator Friendly Web Framework with a Rust runtime.
language: Python stars: 2695 last commit: Today
repo: github.com/sansyrox/robyn
site: robyn.tech
Join thousands of other open-source enthusiasts and developers in the Open Source Hub Discord server to continue the discussion on the projects in this week's email!
🎙️ Interview With Sanskar of Robyn - a Python Web Framework with a Rust runtime
Hey Sanskar! Thanks for joining us! Let us start with your background.
Hey! 👋 My name is Sanskar. I was born and raised in New Delhi, India and am currently working in London. I work as a Software Engineer at Bloomberg during the mornings and as a Free and Open Source developer at Robyn during the nights. When I am not in front of my PC, I enjoy lifting heavy circles and chasing the pump at the gym. I am an avid reader and love discussions on the topics of philosophy, business, and technology. You call me a 'Philosopher-Coder-Athlete' - or, you know, Sanskar for short.
Who or what are your biggest influences as a developer?
Like many other developers, I grew up being inspired by Steve Jobs and Mark Zuckerberg. Steve Jobs, with his innovative mindset and unwavering commitment to design excellence, showed me the importance of aligning functionality with user-centered aesthetics. He emphasized that great software isn't just about how it works, but also how it feels to the user, a principle that continues to guide my development approach.Mark Zuckerberg, illustrated the transformative power of technology in bridging social gaps. His journey, from turning a college dorm project into a global social networking platform, was an eye-opener. It underscored the potential of small projects and the audacity to dream big. His work also portrays the importance of shipping frequently, which is something that I deeply resonate with.
My interaction with the open-source world started early as a Linux user, culminating in my freshman year when I discovered Richard Stallman's work. Stallman, a stalwart advocate of free software, opened my eyes to the ethical dimensions of software development. His philosophy around users' freedom to use, study, distribute, and modify software, has been a guiding beacon in my ongoing contributions to the open-source community.These influencers have not just shaped my technical acumen, but they've also imparted invaluable lessons that I continue to use to this day.
What’s your most controversial programming opinion?
Static Typing is not a panacea.
What is your favorite software tool?
Python ;)
What is your favorite book and why?
"Meditations" by Marcus Aurelius is one of the books that really stand out for me. This timeless piece isn't just a book, but a window into the mind of one of the most powerful individuals in history.
Meditations is a deeply introspective work that offers a unique insight into stoic philosophy. Reading this book required a great deal of immersion, as the thoughts and reflections of Aurelius are both profound and complex. But it was in this immersive process that I found a wealth of wisdom about life, duty, death, and nature.
If you had to suggest 1 person developers should follow, who would it be?
I suggest @sansyrox haha
What are you currently learning?
I am currently working on another framework called Starfyre, and I am trying to learn the intricacies in the JS packaging world. And obviously trying to improve my Rust programming skills.
Why was Robyn started?
It was April 2021, and I was in my final year of university. I was supposed to be working on my final project, but I was distracted by Reddit. Around that time, a major tech company announced their adoption of Rust for one of their projects, leading to a flood of "Rewriting Everything in Rust" memes on the platform.
I was working on a personal project with a Flask backend at the time and was frustrated by the lack of async support in Flask. I had tried using Quart and FastAPI before, but they weren't as widely used. That's when I decided to see if I could create a version of Flask with async support
Since Rust was gaining so much traction, I decided to try making Robyn in Rust. Much to my surprise, my first benchmark showed that Robyn outperformed many other Python frameworks. And thus, Robyn was born.
What makes it different from other Python web frameworks?
Robyn distinguishes itself from other Python web frameworks through its unique integration of a Rust runtime, delivering superior performance and efficiency. t is a community-driven project, encouraging developers to contribute and evolve the framework actively. Moreover, Robyn maintains an innovator-friendly environment, allowing developers to experiment, iterate and innovate. Its adaptability and responsiveness make it a versatile choice for diverse development needs.
How does Robyn work?
Robyn uses the power of a multi-threaded runtime, based on Tokio, which enables it to effectively bypass the Global Interpreter Lock (GIL) at various places. The multi-threaded router efficiently manages incoming requests, parsing them based on the function type scheduled for execution. Once the function execution is complete, the router prepares and dispatches the response back to the user, ensuring a smooth and efficient request-response cycle.
Please share your Codebase Map OR your latest pull request with a Review Map
https://app.codesee.io/maps/15d54d30-fe2c-11ed-aec1-a9fe69f2d6d4
What kind of web applications is Robyn best suited for?
Robyn excels in environments that demand rapid development of a Python web backend, yet hold scalability as a crucial requirement. Its design philosophy caters to developers who appreciate a flexible framework with essential functionalities pre-built, but also want the liberty to customize as per their unique needs. Robyn is especially suitable for web applications where developers value simplicity in implementation while retaining the ability to conduct complex operations. Its robustness and flexibility make it a perfect fit for both straightforward and complex web application development.
Where did the name for Robyn come from?
Sanskar thought to himself. If he were to foster and cultivate an entity named Robyn, it would seamlessly, almost inevitably, transition him into the role of... Batman!
What was the most surprising thing you learned while working on Robyn?
Working on Robyn revealed a surprising truth about open-source projects - maintaining code is just the tip of the iceberg. There's a rich and diverse array of activities happening beneath the surface that forms the backbone of any successful project.
A crucial facet of maintaining an open-source project, as learned through Robyn, is community engagement. It isn't merely about keeping the codebase functional and updated, but also about fostering a lively and collaborative community. This involves initiating discussions, responding to queries, and even managing disputes to ensure a healthy, vibrant ecosystem.
Documentation is another cornerstone of open-source projects. Ensuring that documentation is comprehensive, accessible, and up-to-date is an ongoing task that requires significant attention. It serves as a vital resource for newcomers, enabling them to onboard quickly and contribute effectively.
Beyond that, creating educational resources, such as video tutorials or walkthroughs, is a significant commitment. Despite being time-consuming, these resources play an essential role in enabling users to utilize Robyn to its fullest potential and contribute back to the project.
In short, looking after an open-source project like Robyn isn't just about coding. It's also about building a strong community, keeping clear records, and making helpful learning resources. All these parts come together to make a project really shine.
What is the best way for a new developer to contribute to Robyn?
If you're a new developer looking to contribute to Robyn, the process is straightforward and involves a couple of key steps.
First, if you notice an issue with the project, please take the initiative to open an issue. We can then engage in a productive discussion either directly on the issue thread or via our discord community to determine the best course of action.
Secondly, if you stumble upon an issue that hasn't been claimed yet, don't hesitate to take ownership. Simply express your interest in tackling it and you can start working on a solution.
Additionally, if you're finding the idea of programming tasks somewhat daunting to begin with, there's another essential way you can contribute. We're always in need of help with documentation, a critical part of any open-source project. This can be a fantastic starting point and we're more than willing to guide you through your next steps from there. Remember, every contribution, no matter how small, makes a significant difference!
Where do you see the project heading next?
The near-term vision for Robyn is the release of a fully realized v1.0 version. We aim to achieve this milestone by the end of this year or early next year.
What motivates you to continue contributing to Robyn?
My motivation for continuing to contribute to Robyn comes from my own journey. I've been using Free and Open Source Software (FOSS) for most of my life. For as long as I can remember, I have been using Free and Open Source Software (FOSS). In my early years, this was without conscious recognition of the fact. However, as my knowledge and experience grew, I began to intentionally align myself with the open-source philosophy.
Open-source software has played a fundamental role in shaping my programming journey and significantly contributing to my successes in the field. The opportunity to not just use, but actively contribute to free software was a turning point in my career. Especially contributing to software that promote “Freedom as in speech”.
Now that I have the experience, being able to create new open-source tools is incredible. It feels like I've come a long way, from a user who didn't know about open-source to someone who's making it. This feeling of making a real difference, helping to grow the open-source community, and creating tools that help others is what keeps me dedicated to Robyn.
Are there any other projects besides Robyn that you’re working on?
Yes, I'm working on another project, Starfyre. It's a Python framework designed to empower developers to create reactive front-end applications using Python exclusively.
Do you have any suggestions for someone trying to make their first contribution to an open-source project?
Jumping into open-source can be intimidating, but don't worry. Stay curious and be friendly. Ask questions, no matter how basic, and respect everyone in the community. Start small - even fixing a typo is a valuable contribution. Remember that open-source is about collaboration. With a positive attitude, you'll find projects that are eager to help you learn and grow. Most importantly, don’t forget to have fun! 😀
Want to join the conversation about one of the projects featured this week? Drop a comment, or see what others are saying!
Interested in sponsoring the newsletter or know of any cool projects or interesting developers you want us to interview? Reach out at osh@codesee.io or mention us @ConsoleWeekly!