💌 A beautiful, fast and fully open source mail client for Mac, Windows and Linux.
Find a file
Mark Hahnenberg 70bb602246 [client-sync] Split Contact ranking query
Summary:
We were using a join for the contact ranking query and for whatever
reason on large databases this was extremely slow in SQLite. This diff
splits the query into first finding the sent Folder/Label and then
searching for non-draft Messages in that category.

Test Plan: Run locally, verify the query is faster

Reviewers: juan, evan, spang

Reviewed By: spang

Differential Revision: https://phab.nylas.com/D4315
2017-03-31 15:29:20 -07:00
.ebextensions Fixes to Docker and better docs/debugging 2017-01-03 09:32:08 -08:00
arclib [local-private] move old edgehill src/pro into packages/local-private 2016-12-12 10:09:58 -05:00
packages [client-sync] Split Contact ranking query 2017-03-31 15:29:20 -07:00
scripts [client-app] Add script that benchmarks new commits 2017-03-30 16:11:49 -07:00
scripts-tmp bump(version): 1.0.53 2017-03-31 09:07:20 -07:00
.arcconfig Update .arcconfig to point to new repo 2017-02-16 14:15:19 -08:00
.arclint [dev] Make 'arc lint' shut up about long lines 2017-03-13 11:42:14 -07:00
.babelrc [*] use hardlinked .babelrc for AppVeyor 2017-03-07 14:11:16 -05:00
.coffeelint.json [dev] Make 'arc lint' shut up about long lines 2017-03-13 11:42:14 -07:00
.dockerignore [*] Make sure cloud deploy can access .babelrc 2017-02-22 12:09:14 -08:00
.ebignore [dev] Correctly ignore node_modules in .ebignore for faster deploys 2017-03-28 14:00:29 -07:00
.eslintrc [none] Update .eslintrc 2017-03-01 16:57:03 -08:00
.gitignore [client-app] Add initial sync benchmarking script 2017-03-29 16:11:44 -07:00
.travis.yml [dev] Only bootstrap specific pkgs in postinstall for faster installs 2017-03-28 13:59:55 -07:00
appveyor.yml [dev] Only bootstrap specific pkgs in postinstall for faster installs 2017-03-28 13:59:55 -07:00
deploy-it [dev] One more newline in deploy-it output 2017-03-28 17:02:45 -07:00
Dockerfile [dev] Only bootstrap specific pkgs in postinstall for faster installs 2017-03-28 13:59:55 -07:00
lerna.json [client-app] use forked lerna for better npm logging 2017-03-06 15:35:56 -05:00
package.json [client-app] run windows build separately 2017-03-13 15:48:45 -07:00
README.md [*] update and add READMEs to each package 2017-02-17 17:28:09 -08:00

Nylas Mail

This is a collection of all components required to run Nylas Mail.

  1. Isomorphic Core: Shared code across local client and cloud servers
  2. Client App: The main Electron app for Nylas Mail mirrored to open source repo.
  3. Client Sync: The local mailsync engine integreated in Nylas Mail
  4. Client Private Plugins: Private Nylas Mail plugins (like SFDC)
  5. Cloud API: The cloud-based auth and metadata APIs for N1
  6. Cloud Core: Shared code used in all remote cloud services
  7. Cloud Workers: Cloud workers for services like send later

See /packages for the separate pieces. Each folder in /packages is designed to be its own stand-alone repository. They are all bundled here for the ease of source control management.

Initial Setup for All Local & Cloud Services:

New Computer (Mac):

  1. Install Homebrew
  2. Install NVM & Redis brew install nvm redis
  3. Install Node 6 via NVM: nvm install 6

New Computer (Linux - Debian/Ubuntu):

  1. Install Node 6+ via NodeSource (trusted):
  2. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
  3. sudo apt-get install -y nodejs
  4. Install Redis locally sudo apt-get install -y redis-server redis-tools benefit of letting us use subdomains.

Running Nylas Mail

  1. npm install (Only on fresh install and new packages)
  2. npm run start-client: Starts Electron app client
  3. npm run start-cloud: Starts cloud API locally