Go to file
Alex Vandiver c13e3dee24 katex: Replace subprocess call with minimal external service.
Replace a separate call to subprocess, starting `node` from scratch,
with an optional standalone node Express service which performs the
rendering.  In benchmarking, this reduces the overhead of a KaTeX call
from 120ms to 2.8ms.  This is notable because enough calls to KaTeX in
a single message would previously time out the whole message
rendering.

The service is optional because he majority of deployments do not use
enough LaTeX to merit the additional memory usage (60Mb).

Fixes: #17425.
2024-03-15 15:34:12 -07:00
.github install: Support Ubuntu 24.04. 2024-03-01 17:38:08 -08:00
.tx provision: Replace transifex-client with new transifex-cli. 2022-12-13 12:34:08 -08:00
.vscode vscode: Recommend remote development extension. 2021-11-03 16:03:46 -07:00
analytics update_analytics_count: Use a correct lock mechanism. 2024-03-05 10:21:14 -08:00
api_docs api-docs: Update feature level 224 changelog and **Changes** notes. 2024-03-13 16:50:48 -07:00
confirmation remote_billing: Implement confirmation flow for RemoteRealm auth. 2023-12-10 16:15:28 -08:00
corporate corporate: Fix 'get_next_billing_cycle' for scheduled fixed-price plan. 2024-03-15 12:31:57 -07:00
docs katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
help billing: Update name field label in login confirmation form. 2024-03-14 10:53:36 -07:00
locale i18n: Update translation data from Transifex. 2024-02-27 17:22:21 -08:00
patches dependencies: Patch source-sans to correct format() for variable fonts. 2023-09-13 17:08:53 -07:00
pgroonga migrations: Import BaseDatabaseSchemaEditor from its canonical module. 2023-03-05 14:46:28 -08:00
puppet katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
requirements requirements: Move pip and zoneinfo forks to zulip organization. 2024-03-07 18:44:04 -05:00
scripts katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
static features: Swap in redesigned feature-comparison table. 2024-02-13 15:11:02 -08:00
stubs/taint actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
templates billing: Adjust strings on billing page for invoice payment method. 2024-03-14 16:43:52 -07:00
tools katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
var/puppeteer
web katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
zerver katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
zilencer python: Reformat with Ruff formatter. 2024-02-29 17:07:16 -08:00
zproject katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
.codecov.yml
.codespellignore pygments: Place Default (light) and Monokai (dark) schemes. 2023-12-04 13:03:34 -08:00
.editorconfig editorconfig: Use [[shell]] section for shfmt options. 2024-02-22 16:36:16 -05:00
.eslintignore web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
.eslintrc.json katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
.gitattributes .gitattributes: Mark *.bmp, *.bson, *.mp3, *.pdf as binary. 2022-02-07 18:51:06 -08:00
.gitignore dev_settings: Allow user to override settings in a git-ignored file. 2023-12-04 09:50:14 -08:00
.gitlint lint: Update line-length for commit message to 72 in gitlint. 2023-05-01 10:35:52 -07:00
.mailmap mailmap: Add entry for Rohan Gudimetla. 2023-12-13 13:28:19 -08:00
.npmignore
.npmrc dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
.prettierignore integrations: Create incoming webhook for GitHub Sponsors. 2024-02-07 09:52:03 -08:00
.pyre_configuration
.readthedocs.yaml readthedocs: Add a configuration file. 2023-02-03 16:36:54 -08:00
.sonarcloud.properties
CODE_OF_CONDUCT.md docs: Rename "private message" -> "direct message". 2023-06-23 14:36:16 -07:00
CONTRIBUTING.md docs: Fix a server/web-specific segment in contributing guide. 2024-02-26 08:40:37 -08:00
Dockerfile-postgresql docs: Fix grammar errors found by mwic. 2023-10-09 13:24:09 -07:00
LICENSE
NOTICE
README.md docs: Update Ruff badge and links. 2023-10-26 15:51:46 -07:00
SECURITY.md docs: Update .html links pointing to "Upgrade Zulip" or "Modify Zulip". 2023-08-11 16:49:32 -07:00
Vagrantfile vagrant: Add Fedora 36 support. 2022-09-08 16:12:59 -07:00
dump.rdb stream-settings: Show indicator on notification settings. 2024-02-13 14:47:42 -08:00
manage.py mypy: Enable new error explicit-override. 2023-10-12 12:28:41 -07:00
package.json katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
pnpm-lock.yaml katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -07:00
prettier.config.js
pyproject.toml ruff: Enable more rules. 2024-03-01 09:27:48 -08:00
stylelint.config.js dependencies: Upgrade JavaScript dependencies. 2023-07-21 15:58:42 -07:00
tsconfig.json dependencies: Install `@types/jquery.validation for type annotation. 2023-08-14 16:00:20 -07:00
version.py katex: Replace subprocess call with minimal external service. 2024-03-15 15:34:12 -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 Ruff 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.