Abstract
Rust transforms business dashboards with memory-safe, lightning-fast visualizations. Zero-cost abstractions enable blazing performance while compile-time guarantees eliminate entire bug classes. Organizations achieve faster decisions, improved efficiency, and bulletproof security in one solution.
The intersection of Rust and business intelligence is transforming how organizations interpret their data, with Rust-powered dashboards delivering memory-safe, lightning-fast visualizations that drive measurable business outcomes. From leveraging Rust’s zero-cost abstractions for visualization rendering to implementing type-safe navigation patterns and memory-safe security protocols, Rust enables dashboard implementations that significantly outperform traditional solutions. The combination of Rust’s performance characteristics with intuitive design principles, responsive layouts, and robust security measures creates high-performance interfaces that reduce decision-making time while maintaining exceptional reliability. By systematically implementing Rust-based solutions for visual hierarchy, personalization features, and quality assurance processes, organizations can develop powerful tools that bridge the gap between complex data and actionable insights with unprecedented speed and safety.
Transcript
This transcript was autogenerated. To make changes, submit a PR.
Hello everyone.
My name is Shay Ter, and I'm a director at United Lake.
Today I'm excited to talk about a modern approach to web analytics
and business intelligence.
We are going to dive into how we can build high performance
user-centric dashboards using Rust.
We will see how Rust can let us deliver better user experience
through speed and reliability.
Before we get into the technology, let me give you a quick background on
why I'm passionate about this topic.
I'm the director of IP Strategy and Technology at United Lakes.
I'm based in Austin, Texas, in the United States of America.
I lead the IP data science team where we create innovative
solutions at the intersection of intellectual property and technology.
I have been included in the I Am Strategy 300, a list of world's top IP strategists.
One of the products that our team has developed is Vantage for I. It is
a patent intelligence platform that processes hundreds and thousands of
patents using natural language processing.
It provides competitive intelligence, evaluates patent
strengths, and uncovers licensing opportunities amongst other things.
Two of my key focus areas are developing deep learning models to e evaluate
patents and designing user friendly platforms to convey those results.
So what exactly are the challenges with modern dashboards?
I think we all have experienced this.
You open a dashboard with a lot of data and it's slow, it's sluggish.
It's a frustrating user experience.
The root cause is often a combination of three key issues.
Performance bottlenecks.
Heavy data processing and calculations are typically done in JavaScript,
which is an interpreted language.
This leads to slow rendering and poor user experience, security
risk, JavaScript, dynamic nature can introduce vulnerabilities, running
complex, and sometimes untrusted code in a browser opens the application
to various attacks, wasted resources.
Inefficient code and frequent data transfers create a heavy load
on both the client, CPU and the server wasting valuable resources.
So the question is, how do we solve these problems without
sacrificing the flexibility and richness of the modern web?
The answer is a perfect partnership.
Okay.
The perfect partnership of rest and was, this is where the magic
happens, an incredible combination of rest and web assembly or valve.
They work together to address every one of those challenges.
Let's first talk about rust.
It feels like I'm preaching to the CO as everyone here is familiar with the
benefit that trust brings to the table.
Yet for the sake of completeness, let me highlight a few unmatched memory,
safety, rust ownership and borrowing model eliminates entire classes of
bugs like null pointers and databases.
This isn't just stability, it's a huge security win.
Zero cost abstractions, rust gives us powerful high level features like
iterators and closures, but without the performance overhead, you'd expect.
You get the best of both worlds built for concurrency, rust type system makes
writing safe, parallel code much easier.
This is a game changer for processing large data sets.
Now let's take a moment to understand what web assembly is because it's the bridge
that brings rust power to the browser.
Web assembly isn't a new programming language, it's a compilation target.
Think of it as the assembly language of the web.
VSM is a low level binary format for a stack based virtual machine.
It's what you compile languages like rust, c plus, or going to.
Vast runs at speed that are almost as fast as native code, which is a massive
performance jump for computation.
Heavy tasks compared to traditional JavaScript VA modules run in a
secure, isolated environment.
This is crucial because it means a buggy or malicious was module can't access the
rest of your webpage or the user system.
So how does we combine these two technologies in practice?
Let's walk through the workflow.
The workflow is surprisingly straightforward.
You don't have to rewrite your entire application In rust.
We can be selective and strategic.
Write the core logic in rust.
This is the most important step.
Identify the performance critical.
Parts of your dashboard, data aggregation, complex, filtering,
heavy calculations, and write those specifically in rust compile to M.
Use a tool like Mack.
It's a key part of the process that handles all the lift heavy lifting,
creating a web assembly file and a JavaScript glue that allows your
front end to talk to the vast module.
Import and use the existing JavaScript.
Frontend simply imports the vast module from the JavaScript perspective.
It just another library, but it's a library that performs computationally
intensive tasks at near native speed.
Visualize with JavaScript existing UI frameworks like React or View
can still be used for rendering.
The rust valve part is the high performance engine under the hood.
JavaScript part is the user interface on top.
This approach leads to a clear, layered architecture.
We can think of this as a three layer architecture.
Each layer has a specific job, and rust plays a key role.
In the first two data layer is the foundation.
This is where you use rust to connect to data sources, manage memory efficient data
structures, and build type safe queries.
This ensures data is handled correctly and quickly from the
very beginning processing layer.
This is where rust power shine really shines.
This layer handles parallel data processing, statistical analysis and
data transformation visualization layer.
This is the front end.
This layer uses high speed output from the processing layer
to render charts and tables.
This is where you can leverage web assembly for browser rendering on
native visualization for desktop apps,
this layered approach is only possible because of the incredible rust ecosystem.
Rust community has built an amazing ecosystem of libraries.
For each layer of our architecture, there are robust and
well-maintained crates available.
Libraries like SQL X can be used for database interaction and
polars for fast data frames.
Then libraries like Rayon can be used for easy parallelism and
NDRA for numerical computation.
VA Mine Gen is the Last Rust Library designed to facilitate
high level interactions between VA modules and JavaScript plotters
for generating charts and tari.
If you're building a desktop, applications theory is great, but look, let's look at
some real world examples of this inaction.
These are not just small projects, these are major applications.
The challenge for Figma was real-time multiplayer.
They needed to handle complex synchronization for multiple users.
While technically not an analytics dashboard, it has a lot of similarities.
Essentially, it requires processing real time data and presenting visual
components in a smooth manner.
Their solution was to rewrite their code multiplayer engine in rust.
The results were astounding, a 3.8 x reduction in memory usage
and six x reduction in CPU usage.
This proves that rust isn't just for small optimizations, it's
for mission critical code logic.
Our next example is about a graph visualization, which was
running at less than 10 frames per second on heavy desktops.
This graph shows the relationship between different artists on Spotify.
Spotify provides this data directly from their API.
Users can click on an artist, see related artist, or drag an artist node
and view other nodes, move together.
The user experience was shareable.
The solution was to move the heavy calculations to rest and web assembly.
The result, the exact same visualizations now run at 60 frames
per second, even on mobile devices.
That's a massive difference for the end user.
Finally, in the world of financial applications, processing massive data sets
with billions of rows is a common problem.
Data Bento provides real-time and historical market data to its users.
They were struggling to process and analyze large data sets with ease, which
would allow for timely and data-driven decisions in response to market changes.
The solution was polars, a data frame library written in rust.
Its performance is incredible.
Which benchmarks?
Showing it out outperforms pandas by eight to 15 x. It's a game changer for
data wrangling and visualizing at scale.
Speaking of visualizations, let's look at some of rush libraries that you
can use to build these dashboards.
As mentioned earlier, visualization can continue to be in JavaScript.
However, the ecosystem of Rust Visualization libraries is growing
and we already have some excellent choices for visualization.
Plotters is a low level, powerful library for plotting data.
Its versatile and can output to various formats.
Charming is a great option.
If you're a fan of Apache Echarts, it's provide a user-friendly
declarative rust, API on top of the wok powerful JavaScript library.
Plotly is an option for more scientific and statistical visualizations, leveraging
the extensive feature set of lead js.
Now that we have covered the technical side.
Let's remember the most important part of building a grad grade dashboard.
The user
performance and security are vital, but a dashboard is only
successful if it's useful and usable.
We have to balance technical excellence with thoughtful design.
Let's review some of the key design principles.
Know your audience.
This is the most critical principle.
Before designing anything, you must understand who the users
are, what their goals are, and what decisions they need to make.
A CEO's dashboard will look very different from an analyst.
Keep it simple.
Dashboard should be easy to understand at a glance.
Avoid clutter and unnecessary visuals.
Use a clear, logical layout and a consistent visual language.
The users should be able to find what they need without
extensive searching or training.
Provide context, data points on their own are often meaningless.
A good dashboard provides context by showing data against a benchmark,
a time series, or a key performance indicator with its target.
This help, this helps users quickly interpret the information
and understand its significance.
Prioritize information.
All data is created equal.
Use visual hierarchy to guide the user's attention to the most important
information First, this can be achieved through size, placement, and color.
The most critical metrics should be front and center, while supporting
data can be placed elsewhere.
Enable customization, give users the ability to personalize their dashboard.
Allowing them to filter data, change data ranges, or even rearrange widgets,
empower them and makes the dashboard more relevant to their specific workflow.
Ensure interactivity dashboards should not be static images.
Allow users to drill down into specific data points, power
over charts for more details, or click to explore underlying data.
This interactivity inter encourages exploration and deeper understanding.
Choose the right visuals.
Select the chart type that best represents the data that supports the user's charts.
For example, use a line chart to show trends over time, a bar chart
to compare categories and a pie chart for parts to hold relationships.
Using the wrong chart can lead to misinterpretation, accessibility,
designed with accessibility in mind.
This includes using color palettes that are accessible to users with
colorblindness, providing clear labels and ensuring dashboard is navigable
with keyboard or screen reader.
By combining these design principles with the power of rust and web assembly, we can
have a significant impact on our business.
Let's bring it all home and talk.
Why this is a big deal for our businesses and our organizations.
Blazing speed.
This isn't just about faster rendering, it's about delivering an outstanding
user experience, which leads to better, faster decision making.
Ironclad security memory safety means we eliminate a huge class of vulnerabilities,
which is critical for handling sensitive business data and meeting compliance
requirements developer productivity.
Using a type safe language like rust helps us write correct maintainable
and bulk free code from the start saving time and money in the long run.
To wrap up, I want to leave you with a few takeaways and some concrete next steps.
First, the key takeaways.
Remember these three points, performance transforms, experience.
Safety creates trust, user-centric design matters.
So what can you do with this information?
I encourage you to start small.
Assess your current bottlenecks, identify a high impact use case, and
then build a small proof of concept.
Measure the results, and you'll see the value for yourself.
This brings us to the end of today's presentation.
While I'm not going into the details of this infographic, I wanted to
include it as here as a bonus content.
This has helped me often to determine the right chat type and hope it helps you too.
It was a pleasure to cover this exciting topic.
If you have any questions or comments, please reach out
to me on GitHub or LinkedIn.
Have a great rest of your day.
Thank you.