Skip to content

feat rust#2844

Merged
atharvadeosthale merged 21 commits intomainfrom
feat-rust
Apr 8, 2026
Merged

feat rust#2844
atharvadeosthale merged 21 commits intomainfrom
feat-rust

Conversation

@atharvadeosthale
Copy link
Copy Markdown
Member

No description provided.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 31, 2026

Greptile Summary

This PR adds official Rust SDK support across the Appwrite website: a quick-start guide, blog post and changelog entry, SDK page listing, icon assets, marketing page entry, and Rust code snippets for all server-side documentation pages (Auth, Databases, Storage, Messaging, Functions).

  • The tokens.get Rust snippet in file-tokens/+page.markdoc (line 687) is missing all boilerplate — no imports, no #[tokio::main], no client setup — making it the only non-compiling snippet in the PR.
  • Two tokens.* snippets in the same file pass Some(\"\") instead of None for the optional expire datetime field, which will likely cause server-side validation failures.

Confidence Score: 4/5

Safe to merge after fixing the two issues in file-tokens/+page.markdoc — an incomplete snippet and two Some("") values that should be None.

The vast majority of the 75-file PR is well-structured and consistent. Two actionable P1 defects exist in a single file: a non-compilable stub snippet and invalid empty-string values for optional datetime parameters. All other Rust documentation additions look correct.

src/routes/docs/products/storage/file-tokens/+page.markdoc — incomplete tokens.get snippet and two Some("") expire values.

Vulnerabilities

No security concerns introduced by this PR. The partial-looking API key strings present in the messaging and auth/labels documentation files are pre-existing across all SDK languages in those files and are clearly illustrative placeholders, not real credentials.

Important Files Changed

Filename Overview
src/routes/docs/products/storage/file-tokens/+page.markdoc Adds Rust snippets for all token operations; tokens.get snippet is incomplete (missing imports and setup), and two snippets pass Some("") instead of None for the optional expire field.
src/routes/docs/quick-starts/rust/+page.markdoc New Rust quick-start guide with complete, well-structured code examples using TablesDB, ID::unique(), and Query; no issues found.
src/routes/blog/post/announcing-appwrite-rust-sdk/+page.markdoc New blog post announcing the Rust SDK with a clear overview of supported services and a runnable code example; no issues found.
src/lib/utils/references.ts Adds ServerRust platform constant and Rust entries to the platform and language maps; straightforward and correct.
src/lib/utils/code.ts Registers the highlight.js Rust language module and maps Platform.ServerRust to the rust highlighter alias; no issues.
src/routes/docs/sdks/+page.markdoc Adds Rust SDK entry to the server SDKs table and a Rust ID usage example; no issues found.
src/routes/(marketing)/(components)/platforms.svelte Adds Rust to the marketing platforms list with correct icon imports and brand color; no issues.
src/routes/docs/products/messaging/messages/+page.markdoc Adds Rust snippets for push, email, and SMS message creation; follow existing file conventions and are complete.
src/routes/docs/products/messaging/topics/+page.markdoc Adds Rust snippets for topic and subscriber management; consistent with the existing pattern for all SDK languages in this file.

Reviews (16): Last reviewed commit: "update blog author" | Re-trigger Greptile

@adityaoberai adityaoberai requested a review from ChiragAgg5k April 7, 2026 16:13
Comment on lines +23 to +31
The SDK supports every Appwrite server-side service:

| Service | What you can do |
|---------|----------------|
| **Databases** | Create databases, tables, columns, rows. Query with filters, sorting, and pagination. |
| **Auth** | Manage users, sessions, teams, and OAuth providers. |
| **Storage** | Create buckets, upload and download files, manage file tokens. |
| **Functions** | Create and execute serverless functions. |
| **Messaging** | Send emails, SMS, and push notifications through providers like Twilio, Sendgrid, and more. |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incomplete list, need to add: Sites, Tokens, Locale, Avatars

Also, let's separate Auth into Account, Users, and Teams

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the same as dark @atharvadeosthale

let user = account.get().await?;
```
{% /multicode %}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 set_session called on immutable binding in get_user snippet

session_client is declared without mut, yet session_client.set_session(session.unwrap()) is called on it on this line. If set_session takes &mut self, this will be a compile error. The binding needs mut:

Suggested change
let mut session_client = Client::new()

(The same immutability issue was noted for the earlier session snippet at the top of the SSR page — this is a new occurrence of the same problem in the restructured get_user block.)

atharvadeosthale and others added 3 commits April 8, 2026 19:17
Co-authored-by: Aditya Oberai <adityaoberai1@gmail.com>
Co-authored-by: Aditya Oberai <adityaoberai1@gmail.com>
@adityaoberai
Copy link
Copy Markdown
Contributor

@atharvadeosthale we need to change the name of the changelog file

@atharvadeosthale atharvadeosthale merged commit ca1f5f0 into main Apr 8, 2026
6 checks passed
@atharvadeosthale atharvadeosthale deleted the feat-rust branch April 8, 2026 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants