Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add clap to Meilisearch in concepts in what's covered #50

Merged
merged 1 commit into from
Jan 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ The larger goal of the book is to help developers become proficient enough with

## Pieces

Each *piece* is a small project that's implemented in both Python and Rust. The goal is to make it as easy as possible for Python developers to understand the Rust implementation, and vice versa.
Each _piece_ is a small project that's implemented in both Python and Rust. The goal is to make it as easy as possible for Python developers to understand the Rust implementation, and vice versa.

The code for the pieces is in the [pieces](./pieces) directory. Each piece is accompanied by a README that explains the problem statement, and how to run the code in both languages.

Expand All @@ -22,24 +22,24 @@ As such, the concepts are introduced in a way that's as gradual as possible, tho

A roadmap for upcoming pieces is shown below. Stay tuned!

| Piece | Category | New Rust concepts
| --- | --- | --- |
| Hello world | Intro | macros
| Data structures & constructs | Intro | crates, structs, traits, implementations
| Simple CSV parsing | File-handling | serde, vec
| Regex JSON | File-handling | match, regex
| Mock data generation | File-handling | RNG, sampling
| Age grouping | File-handling | enums
| Datetime parsing | File-handling | chrono, lifetimes
| Preprocessing data for NLP | Parallelism | rayon, parallelism
| Polars datetimes | DataFrames | datetimes
| Polars EDA | DataFrames | TBD
| Postgres | Databases | async, sqlx, tokio
| DuckDB | Databases | arrow, in-memory DB
| Meilisearch | Databases| async, async-std
| Qdrant | Databases | async, tokio, gRPC
| KùzuDB | Databases | async, graph
| REST API to Postgres | APIs | axum, async, tokio
| REST API to local LLM | APIs | axum, LLMs
| PyO3 mock data generation | Unification | TBD
| PyO3 query local LLM | Unification | TBD
| Piece | Category | New Rust concepts |
| ---------------------------- | ------------- | ---------------------------------------- |
| Hello world | Intro | macros |
| Data structures & constructs | Intro | crates, structs, traits, implementations |
| Simple CSV parsing | File-handling | serde, vec |
| Regex JSON | File-handling | match, regex |
| Mock data generation | File-handling | RNG, sampling |
| Age grouping | File-handling | enums |
| Datetime parsing | File-handling | chrono, lifetimes |
| Preprocessing data for NLP | Parallelism | rayon, parallelism |
| Polars datetimes | DataFrames | datetimes |
| Polars EDA | DataFrames | TBD |
| Postgres | Databases | async, sqlx, tokio |
| DuckDB | Databases | arrow, in-memory DB |
| Meilisearch | Databases | async, async-std, clap |
| Qdrant | Databases | async, tokio, gRPC |
| KùzuDB | Databases | async, graph |
| REST API to Postgres | APIs | axum, async, tokio |
| REST API to local LLM | APIs | axum, LLMs |
| PyO3 mock data generation | Unification | TBD |
| PyO3 query local LLM | Unification | TBD |
46 changes: 23 additions & 23 deletions book/src/introduction/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ A top-down approach to learning Rust coming from Python (and vice-versa).

This book's goal is to bring the Python and Rust developer communities closer together, and to help more developers from one language learn how to leverage the benefits of the other.

The book and accompanying [code](https://github.com/thedataquarry/rustinpieces) are organized into a collection of small projects, termed *pieces*. Each piece is a self-contained task with Python and Rust implementations that each perform the same task. The aim is to help Python developers gain familiarity with Rust, and vice-versa, by comparing and contrasting the two languages in a top-down manner.
The book and accompanying [code](https://github.com/thedataquarry/rustinpieces) are organized into a collection of small projects, termed _pieces_. Each piece is a self-contained task with Python and Rust implementations that each perform the same task. The aim is to help Python developers gain familiarity with Rust, and vice-versa, by comparing and contrasting the two languages in a top-down manner.

Importantly, the pieces in this book build towards **unifying Python and Rust code bases** via [PyO3](https://github.com/PyO3/pyo3), a highly popular open source library that allows you to call Rust bindings from Python or the Python interpreter from Rust. *Using one language does not preclude using the other!*
Importantly, the pieces in this book build towards **unifying Python and Rust code bases** via [PyO3](https://github.com/PyO3/pyo3), a highly popular open source library that allows you to call Rust bindings from Python or the Python interpreter from Rust. _Using one language does not preclude using the other!_

As you go through the pieces, you'll find yourself becoming proficient in writing clean, tested, production-worthy code using engineering best practices in either language, moving between them at will. Over time, you can make a more informed choice regarding when to use one or the other language for parts of a larger project.

Expand All @@ -18,24 +18,24 @@ We believe that Rust 🦀 is the among the most approachable lower-level program

Rust's learning curve is considerably steeper than Python's, so the table below is provided to show a mapping between each piece and its corresponding concept in Rust. As can be seen, structs, serialization, deserialization, vectors and traits are ubiquitous concepts in Rust.

| Piece | Category | New Rust concepts
| --- | --- | --- |
| Hello world | Intro | macros
| Data structures & constructs | Intro | crates, structs, traits, implementations
| Simple CSV parsing | File-handling | serde, vec
| Regex JSON | File-handling | match, regex
| Mock data generation | File-handling | RNG, sampling
| Age grouping | File-handling | enums
| Datetime parsing | File-handling | chrono, lifetimes
| Preprocessing data for NLP | Parallelism | rayon, parallelism
| Polars datetimes | DataFrames | datetimes
| Polars EDA | DataFrames | TBD
| Postgres | Databases | async, sqlx, tokio
| DuckDB | Databases | arrow, in-memory DB
| Meilisearch | Databases | async, async-std |
| Qdrant | Databases | async, tokio, gRPC
| KùzuDB | Databases | async, graph
| REST API to Postgres | APIs | axum, async, tokio
| REST API to local LLM | APIs | axum, LLMs
| PyO3 mock data generation | Unification | TBD
| PyO3 query local LLM | Unification | TBD
| Piece | Category | New Rust concepts |
| ---------------------------- | ------------- | ---------------------------------------- |
| Hello world | Intro | macros |
| Data structures & constructs | Intro | crates, structs, traits, implementations |
| Simple CSV parsing | File-handling | serde, vec |
| Regex JSON | File-handling | match, regex |
| Mock data generation | File-handling | RNG, sampling |
| Age grouping | File-handling | enums |
| Datetime parsing | File-handling | chrono, lifetimes |
| Preprocessing data for NLP | Parallelism | rayon, parallelism |
| Polars datetimes | DataFrames | datetimes |
| Polars EDA | DataFrames | TBD |
| Postgres | Databases | async, sqlx, tokio |
| DuckDB | Databases | arrow, in-memory DB |
| Meilisearch | Databases | async, async-std, clap |
| Qdrant | Databases | async, tokio, gRPC |
| KùzuDB | Databases | async, graph |
| REST API to Postgres | APIs | axum, async, tokio |
| REST API to local LLM | APIs | axum, LLMs |
| PyO3 mock data generation | Unification | TBD |
| PyO3 query local LLM | Unification | TBD |
Loading