Go to file
Anders Kaseorg c263bfdb41 queue: Use a thread-local Pika connection.
According to the documentation: “Pika does not have any notion of
threading in the code. If you want to use Pika with threading, make
sure you have a Pika connection per thread, created in that thread. It
is not safe to share one Pika connection across threads, with one
exception: you may call the connection method add_callback_threadsafe
from another thread to schedule a callback within an active pika
connection.”

https://pika.readthedocs.io/en/stable/faq.html

This also means that synchronous Django code running in Tornado will
use its own synchronous SimpleQueueClient rather than sharing the
asynchronous TornadoQueueClient, which is unfortunate but necessary as
they’re about to be on different threads.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2022-05-02 17:41:49 -07:00
.github Revert "ci: Remove actions/cache@v2 steps from run due to failures." 2022-04-29 14:03:12 -07:00
.tx cleanup: Delete trailing newlines. 2019-08-06 23:29:11 -07:00
.vscode vscode: Recommend remote development extension. 2021-11-03 16:03:46 -07:00
analytics python: Excise None from pointlessly nullable booleans. 2022-04-27 12:40:14 -07:00
confirmation python: Use Python 3.8 typing.{Protocol,TypedDict}. 2022-04-27 12:57:49 -07:00
corporate python: Excise None from pointlessly nullable booleans. 2022-04-27 12:40:14 -07:00
docs ci: Only run documentation/link tests on a single job. 2022-04-26 17:26:41 -07:00
frontend_tests narrow_banner: Simplify empty narrow messages for spectators. 2022-04-29 16:35:49 -07:00
locale i18n: Update translations from Transifex. 2022-04-18 13:50:19 -07:00
pgroonga pgroonga: Remove unnecessary code from first migration. 2021-05-28 09:42:33 -07:00
puppet puppet: Fix non-replicated PostgreSQL 10 and 11 configuration. 2022-05-02 16:46:10 -07:00
requirements requirements: Upgrade asgiref. 2022-05-02 17:41:49 -07:00
scripts build-pgroonga: Update PGroonga to 2.3.6. 2022-04-29 16:02:45 -07:00
static message_view_header: Add divider after stream name for spectator. 2022-05-02 10:05:33 -07:00
stubs/taint actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
templates settings: Simplify setting organization default language. 2022-04-28 15:03:26 -07:00
tools cache: Instantiate only one BMemcached cache backend. 2022-05-02 17:41:49 -07:00
var/puppeteer puppeteer_tests: Port to TypeScript. 2021-02-22 16:03:10 -08:00
zerver queue: Use a thread-local Pika connection. 2022-05-02 17:41:49 -07:00
zilencer cache: Instantiate only one BMemcached cache backend. 2022-05-02 17:41:49 -07:00
zproject cache: Instantiate only one BMemcached cache backend. 2022-05-02 17:41:49 -07:00
.browserslistrc browserslist: Stop transpiling for pre-ES2019 browsers. 2022-03-17 15:24:46 -07:00
.codecov.yml
.codespellignore CI: Add Codespell linter. 2021-10-27 16:49:30 -07:00
.editorconfig editorconfig: Restore indent_size = 2 for Markdown. 2021-08-20 23:14:37 -07:00
.eslintignore requirements: Remove Thumbor. 2021-05-06 20:07:32 -07:00
.eslintrc.json js: Fix no-jquery/no-parse-html-literal. 2022-03-17 13:16:34 -07:00
.gitattributes .gitattributes: Mark *.bmp, *.bson, *.mp3, *.pdf as binary. 2022-02-07 18:51:06 -08:00
.gitignore editor: Add `.vscode/extensions.json` file. 2021-10-29 15:47:44 -07:00
.gitlint lint: Re-enable imperative-mood checking. 2021-02-23 14:54:07 -08:00
.mailmap mailmap: Add entries to deduplicate more contributors. 2022-03-29 12:13:21 -07:00
.npmignore
.prettierignore prettier: Exclude backend-processed Markdown files. 2021-08-20 23:14:37 -07:00
.pyre_configuration pysa: Update .pyre_configuration to point to typeshed. 2020-09-22 15:44:47 -07:00
.sonarcloud.properties tools: Configure Zulip to be scannable by SonarCloud. 2020-06-24 12:41:17 -07:00
.yarnrc .yarnrc: Set ignore-scripts true. 2019-08-28 16:15:54 -07:00
CODE_OF_CONDUCT.md docs: Apply bullet style changes from Prettier. 2021-09-08 12:06:24 -07:00
CONTRIBUTING.md docs: Clarify stages of PR review. 2022-03-25 18:11:18 -07:00
Dockerfile-postgresql docker: Document the PostgreSQL Dockerfile build steps. 2022-04-26 18:00:00 -07:00
LICENSE license: Move copyright notice from LICENSE to NOTICE. 2021-02-05 09:28:12 -08:00
NOTICE docs: Bump copyright year. 2021-02-05 09:28:15 -08:00
README.md docs: Update README and installation guide. 2022-03-04 13:59:17 -08:00
SECURITY.md SECURITY.md: Reorder and make clearer how to subscribe to announcements. 2022-01-07 15:56:26 -08:00
Vagrantfile Remove Debian 10 support. 2022-04-26 16:32:02 -07:00
babel.config.js browserslist: Stop transpiling for pre-ES2019 browsers. 2022-03-17 15:24:46 -07:00
manage.py manage: Restore `changepassword` back to documented_commands. 2021-06-18 09:11:01 -07:00
package.json password_quality: Switch zxcvbn to zxcvbn-ts. 2022-03-17 15:24:46 -07:00
postcss.config.js css: Replace "night-mode-block" with "dark-theme-block". 2021-11-26 22:03:29 -08:00
prettier.config.js prettier: Disable embedded language formatting for Markdown. 2021-08-20 23:14:37 -07:00
pyproject.toml cache: Instantiate only one BMemcached cache backend. 2022-05-02 17:41:49 -07:00
setup.cfg pycodestyle: Improve comments documenting excludes. 2021-02-12 13:11:25 -08:00
stylelint.config.js yarn: Add package which allows creating css mixins. 2021-12-09 18:15:18 -08:00
tsconfig.json tsconfig: Enable noImplicitOverride. 2021-09-13 10:10:34 -07:00
version.py requirements: Upgrade asgiref. 2022-05-02 17:41:49 -07:00
webpack.config.ts webpack: Remove LoaderOptionsPlugin. 2021-10-17 07:13:57 -07:00
yarn.lock password_quality: Switch zxcvbn to zxcvbn-ts. 2022-03-17 15:24:46 -07:00

README.md

Zulip overview

Zulip is an open-source team collaboration tool with unique topic-based threading that combines the best of email and chat to make remote work productive and delightful. Fortune 500 companies, leading open source projects, and thousands of other organizations use Zulip every day. Zulip is the only modern team chat app that is designed for both live and asynchronous conversations.

Zulip is built by a distributed community of developers from all around the world, with 74+ people who have each contributed 100+ commits. With over 1000 contributors merging over 500 commits a month, Zulip is the largest and fastest growing open source team chat project.

Come find us on the development community chat!

GitHub Actions build status coverage status Mypy coverage code style: black code style: prettier GitHub release docs Zulip chat Twitter GitHub Sponsors

Getting started

You may also be interested in reading our blog, and following us on Twitter and LinkedIn.

Zulip is distributed under the Apache 2.0 license.