An Elixir client for Slack's Real Time Messaging and Web APIs, enabling bot development and Slack integration.
Elixir-Slack is an Elixir library that provides a client for Slack's Real Time Messaging (RTM) and Web APIs. It enables developers to build Slack bots that can send and receive messages in real-time, as well as interact with Slack's full suite of Web API endpoints programmatically. The library solves the problem of integrating Slack's communication features into Elixir applications with a structured, behavior-based approach.
Elixir developers building Slack bots, automation tools, or applications that require real-time interaction with Slack workspaces. It's particularly useful for teams embedding Slack functionality into their Elixir-based systems.
Developers choose Elixir-Slack for its comprehensive API coverage, idiomatic Elixir design, and seamless integration with Elixir's concurrency model. Its auto-generated Web API modules and behavior-driven bot framework reduce boilerplate and provide a maintainable structure for Slack interactions.
Slack real time messaging and web API client in Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically generates modules for all documented Slack Web API endpoints, reducing boilerplate code and ensuring up-to-date API access as mentioned in the README.
Provides a structured Slack behavior with callbacks like handle_connect and handle_event, aligning with Elixir's idiomatic design for maintainable and testable bot logic.
Supports token configuration globally or per-API call via optional_params, allowing granular control over authentication as detailed in the Web API usage section.
Allows configuration of custom HTTP clients or options for Web API calls, enabling advanced error handling and timeout control beyond default settings.
Upgrading from 0.x to 0.20+ requires manual code adjustments due to Slack's deprecation of rtm.start, forcing developers to fetch bots, channels, and users separately.
Heavily relies on Slack's older RTM API, which lacks support for newer features like granular event subscriptions, making it less ideal for modern Slack app development.
After switching to rtm.connect, developers must make extra Web API calls to populate bot state, adding complexity and potential rate-limiting issues.