Is Rust client for Elasticsearch safe for corporation/production use?

Hi,

I was on Github and I saw that apparently there is an official client for Elasticsearch written in Rust which is a language that I admire a lot. Here is the link.

However they say:

The project is still very much a work in progress and in an alpha state; input and contributions welcome!

When they say alpha state, do they talk about the lack of stability or the fact that it is stable and appropriate enough for a corporation/production use but there are features which are not still available?

Any experience? feedback about this client ?

Thanks.

Hi @odyssey_2001 Welcome to the community and thanks for trying the Rust client.

In general Elastic does not recommend running any Elastic projects / component / code in production that is not marked GA.

The Rust client is alpha which means it will still need to progress through Beta before it becomes GA, Only then would we recommend running in production.

With other components that we release in alpha the API could change or performance could change significantly as the software matures.

Of course there'd be no formal support until it reaches GA either.

Perhaps @Russ_Cam can comment or be more specific on the Rust client.

1 Like

Hello Stephen

Thanks a lot for this information. The "GA" flag you are talking about, is it indicated on Github allowing to know whether the client is ready for production use? For example I was checking the official Python client here but I didn't find it.

Python is GA.

Typically and it looks like perhaps we are a bit inconsistent, components are GA when all language indicating otherwise is removed.

Example on the Rust you have

Rust client	Elasticsearch	Status
7.x	7.x	alpha

Where as on the Python there is no indicator.

And you can always ask here :slight_smile:

1 Like

Thanks a lot for confirmation.

One last question : Even approximately, is there by any chance any deadline/calendar indicating when Rust client might become GA (to know finally which client to choose which obviously impacts training, resource investment, etc. for the organization)?

We don't provide timelines for that sort of thing sorry to say.

1 Like

I understand. Thanks.

1 Like

Hi @odyssey_2001,

The Rust client is currently still marked as alpha, primarily due to

  1. Maturity/Confidence in the design of the client API
  2. Request and Response types

For point 1, the design of the client API hasn't drastically changed since the first client release and I wouldn't expect it to drastically change going forward. The client supports all Elasticsearch APIs, including beta and experimental APIs (through features). The performance of the client over time can be seen on the client benchmarks.

The biggest missing piece are request and response types, which I would expect to come out of the effort going into the Elasticsearch specification. This issue is being tracked at

I wouldn't say that request and response types are a necessary piece for the client becoming GA, though they are an important piece in providing a more ergonomic client in a statically typed language.

If you were to use the Rust client and come across issues, we'd love to hear about them on the GitHub repository, though as @stephenb says, there is no formal support for alpha software.

2 Likes

Thank you very much for this detailed presentation. I think, even in its alpha state, I'm going to give it a try. Anyway, one day it will ultimately become GA, so better to at least start learning how to use it now. Thanks for your time. :+1:

The "GA" flag you are talking about, is it indicated on Github allowing to know whether the client is ready for production use. .

In the case of the Rust client, a GA version of the client would be a published crate version that does not have a prerelease suffix, such as -alpha.1.