zulip-api

Crates.iozulip-api
lib.rszulip-api
version0.0.2
created_at2025-09-20 23:30:15.253606+00
updated_at2025-09-23 15:34:49.931405+00
descriptionClient library for interacting with the Zulip API
homepage
repositoryhttps://codeberg.org/weathered-steel/zulip-api
max_upload_size
id1848289
size266,312
Weathered Steel (weathered-steel-org)

documentation

README

Zulip API

This crate aims to implement the full Zulip REST API.

There is potential for also implementing the Webhook API for more complete integration with Zulip servers.

Alternatives

  • zulip: official Python bindings
  • zulip_rs: unmaintained community Zulip client library

Tests

Unit tests can be run with the normal:

$ cargo test

Integration tests

Integration tests require a little more setup based on the docker-zulip project.

docker-zulip setup

First, use the Docker setup inside the tests/docker folder to launch a local Zulip instance:

$ cd tests/docker

// use docker-compose to launch the instance
# docker compose up -d

// create new "realm" (Zulip term for an organization) link
# docker compose exec docker_zulip_1 \
    "su zulip -c '/home/zulip/deployments/current/manage.py generate_realm_creation_link'"

Instructions are the same using podman compose.

After getting the realm creation link, open it in a browser, and complete the form.

You will need to click through a TLS error about self-signed certificates.

For detailed instructions, see the docker-zulip repository.

Zulip API configuration

A zuliprc file with API authentication settings will be needed to run the integration tests.

You can generate the file by navigating to Settings > Account & Privacy > API Key, and click the Manage API Key button.

You will be prompted for your account password, and presented with the option to download a zuliprc file.

Save the file to zulip-api/tests/zuliprc.

Running integration tests

Once setup is complete, you can run integration tests with:

$ cargo test --features int-tests
Commit count: 0

cargo fmt