Skip to content

manila/zulip-api-rust-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Zulip API Client Library Rust Crate

This repo contains the code for an unofficial, third-party Zulip API client library crate written in the Rust programming language. This library maps Zulip API endpoints into a set of modules that can be used in a Rust project.

Installing

TODO: How to add to crate to Cargo.toml.

Examples

Fetch a single message

use zulip_api_rust_client::client::{ZulipCredentials, ZulipClient};

#[tokio::main]
async fn main() {
    let auth = ZulipCredentials::new(
                "USER_OR_BOT_EMAIL".to_string(),
                "API_KEY".to_string()
               );

    let zulip_client = ZulipClient::new("REALM_URL".to_string(), auth); 

    zulip_client.messages()
        .get_message(42)
        .send()
        .await;
}

Contributing

PR's are welcome including documentation, typo corrections, tests, feedback, etc. There are many endpoints that have not been fully implemented and they can make for great practical learning oppunitunies (aka good first issues)

please note: I am a beginner in Rust so it may take me some time to review any PR's and provide helpful feedback or insight

Endpoint Coverage

Messages

  • send a message
  • upload a file
  • edit a message
  • delete a message
  • get messages
  • construct a narrow
  • add an emoji reaction
  • remove an emoji reaction
  • render a message
  • fetch a single message
  • check if messages match narrow
  • get a message's edit history
  • update personal message flags
  • mark messages as read in bulk

Drafts

  • get drafts
  • create drafts
  • edit a draft
  • delete a draft

Streams

  • get subscribed streams
  • subscribe to a stream
  • unsubscribe from a stream
  • get subscription
  • update subscription settings
  • get all streams
  • get a stream by ID
  • get stream ID
  • create a stream
  • update a stream
  • archive a stream
  • get topics in a stream
  • topic muting
  • delete a topic
  • add a default stream
  • remove a default stream

Users

  • get all users
  • get own user
  • get a user
  • get a user by email
  • update a user
  • update your status
  • create a user
  • deactivate a user
  • reactivate a user
  • deactivate own user
  • set "typing" status
  • get user presence
  • get presence of all users
  • get attachments
  • delete an attachment
  • update settings
  • get user groups
  • create a user group
  • update a user group
  • delete a user group
  • update user group members
  • update user group subgroups
  • get user group membership status
  • get user group members
  • get subgroups of user group
  • mute a user
  • unmute a user

Attribution

The design of this library was and is inspired by Octocrab

About

🦀 Zulip API Library Rust Client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages