https://github.com/abdolence/slack-morphism-rust
A modern async client library for Rust, supports Slack Web / Events API/Socket Mode and Block Kit.
https://github.com/abdolence/slack-morphism-rust
rust rust-crate slack slack-api
Last synced: about 1 year ago
JSON representation
A modern async client library for Rust, supports Slack Web / Events API/Socket Mode and Block Kit.
- Host: GitHub
- URL: https://github.com/abdolence/slack-morphism-rust
- Owner: abdolence
- License: apache-2.0
- Created: 2020-05-27T10:26:43.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-05-05T17:45:54.000Z (about 1 year ago)
- Last Synced: 2025-05-05T18:57:11.644Z (about 1 year ago)
- Topics: rust, rust-crate, slack, slack-api
- Language: Rust
- Homepage: https://slack-rust.abdolence.dev
- Size: 2.81 MB
- Stars: 183
- Watchers: 2
- Forks: 66
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-slack - slack-morphism-rust - A modern async Slack API client for Rust (:hammer_and_wrench: Libraries and SDKs / Rust)
README
[](https://crates.io/crates/slack_morphism)


# Slack Morphism for Rust
Slack Morphism is a modern client library for Slack Web/Events API/Socket Mode and Block Kit.
## Documentation
Please follow to the official website: https://slack-rust.abdolence.dev.
## Examples
https://github.com/abdolence/slack-morphism-rust/tree/master/examples
The examples require to work the following environment variables (from your Slack bot profile in api.slack.com):
- `SLACK_TEST_TOKEN` - for Slack client example
- `SLACK_TEST_APP_TOKEN` - for Slack client with Socket Mode example
- `SLACK_CLIENT_ID`, `SLACK_CLIENT_SECRET`, `SLACK_BOT_SCOPE`, `SLACK_REDIRECT_HOST` - for OAuth routes for Events API example
- `SLACK_SIGNING_SECRET` for all routes for Events API example
To run example use with environment variables:
```
# SLACK_... cargo run --example --all-features
```
Routes for this example are available on http://:8080:
- /auth/install - to begin OAuth installation
- /auth/callback - a callback endpoint for Slack OAuth profile config
- /push - for Slack Push Events
- /interaction - for Slack Interaction Events
- /command - for Slack Command Events
### Testing Events API with ngrok
For development/testing purposes you can use [ngrok](https://ngrok.com/):
```
ngrok http 8080
```
and copy the URL it gives for you to the example parameters for `SLACK_REDIRECT_HOST`.
Example testing with ngrok:
```
SLACK_CLIENT_ID= \
SLACK_CLIENT_SECRET= \
SLACK_BOT_SCOPE=app_mentions:read,incoming-webhook \
SLACK_REDIRECT_HOST=https://.ngrok.io \
SLACK_SIGNING_SECRET= \
cargo run --example events_api_server --all-features
```
## Licence
Apache Software License (ASL)
## Author
Abdulla Abdurakhmanov
with the great help of contributors, particularly:
- Naoki Ikeguchi (@siketyan)
- David Rousselie (@dax)
and many [others](https://github.com/abdolence/slack-morphism-rust/graphs/contributors)