Skip to content

Commit

Permalink
doc: update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
mayneyao committed Oct 25, 2024
1 parent 4dc634a commit 3888cc1
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 21 deletions.
51 changes: 30 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

<div align="center">
<a href="https://eidos.space?home=1">Home Page</a> |
<a href="https://discord.gg/bsGMPDR23b">Discord</a>
<a href="https://discord.gg/bsGMPDR23b">Discord</a> |
<a href="https://eidos.space/download">Download</a>
<p>
Eidos is an extensible framework for managing your personal data throughout your lifetime in one place.
</p>
Expand All @@ -13,7 +14,7 @@
## Features

- Everything runs inside your browser. It's a pure PWA with no web server.
- Everything runs inside your local machine.
- Offline Support: Access your data without an internet connection. Data is stored locally for blazing-fast performance.
- AI Features: Deeply integrated with LLM for AI-powered capabilities. Translate, summarize, and interact with your data within Eidos. AI works even offline.
- Extensible: Customize Eidos to suit your needs.
Expand All @@ -30,57 +31,65 @@
- API & SDK
- Sqlite Standardization: Every table in Eidos is a SQLite table.

## Requirements
## How to use

Currently, Eidos only supports the latest version of chromium-based browsers, such as Chrome, Edge, Arc, and Brave. It recommends a version greater than 122.
There are two versions of Eidos:

Safari, Firefox, and other browsers are not tested yet.
- Web app[tech preview]: Accessible via browser, it's a pure PWA with no web server. But it has some limitations, see [web-vs-desktop](./docs/web-vs-desktop.md)
- Desktop app[recommended]: Offline support, full features.

### Why?

Eidos is built on sqlite-wasm and requires browser support for OPFS[1] to work.

Storing data in a local folder is a good practice to ensure better data security. With Chrome 122 and its later versions, we can get persistent permissions[2] for local folders, so we do not have to select a folder every time we open the web app.

1. https://sqlite.org/wasm/doc/trunk/persistence.md#opfs
2. https://developer.chrome.com/blog/persistent-permissions-for-the-file-system-access-api
Get the app from: https://eidos.space/download

## How to develop

### web app

1. Clone the repository `git clone git@github.com:mayneyao/eidos.git`
2. Run `pnpm install` to install dependencies
3. Run `pnpm build` (only needed once)
4. Run `pnpm dev`
5. You can now access the app in your browser at http://localhost:5173
3. Run `pnpm dev`
4. You can now access the app in your browser at http://localhost:5173

### Generate sdk types
### desktop app

```shell
pnpm gen-types
```
Download [libsimple](https://github.com/wangfenjin/simple) first, see more details at [workflows](./.github/workflows/build-and-release-desktop-app.yml)

1. Clone the repository `git clone git@github.com:mayneyao/eidos.git`
2. Run `pnpm install` to install dependencies
3. Run `pnpm dev:desktop`

## How to deploy your own

[self-hosting](./docs/self-hosting.md)
For most users, you don't need to deploy your own. You can use the desktop app version of Eidos with full offline support and features.

If you want to deploy your own, see more details at [self-hosting](./docs/self-hosting.md)

## Roadmap

https://github.com/users/mayneyao/projects/5

- [x] Desktop App
- [x] I18n
- [ ] Publish Service: Publish your data to the web.
- [ ] P2p sync based on CRDT: local-first, not local-only. Sync your data across devices.

## Credits

Eidos based on the following open-source projects:

### web app

- [sqlite-wasm](https://github.com/sqlite/sqlite-wasm) - Run SQLite in the browser
- [shadcn-ui](https://github.com/shadcn-ui/ui) - UI components
- [glide-data-grid](https://github.com/glideapps/glide-data-grid) - High performance table
- [lexical](https://github.com/facebook/lexical) - Document editor
- [web-llm](https://github.com/mlc-ai/web-llm) - Run LLM in the browser
- [teable](https://github.com/teableio/teable) & [apitable](https://github.com/apitable/apitable) - Teach me how to build an Airtable-like table.

### desktop app

- [electron](https://github.com/electron/electron) - Build cross-platform desktop apps
- [libsimple](https://github.com/wangfenjin/libsimple) - a sqlite extension for full-text search for CJK languages

## License

This project is licensed under the terms of the AGPL license.
17 changes: 17 additions & 0 deletions docs/web-vs-desktop.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,20 @@ The desktop version is built using Electron, primarily adapting the file system
- In the web version, data is stored in OPFS. If native file storage is selected, it periodically syncs to a local folder. Consequently, the SQLite data in the local folder may have some latency. The desktop client doesn't have this issue.
- The desktop version has removed support for WebLLM. For offline LLM solutions, users can run local options like Ollama or LLM-Studio.
- The desktop version has built-in API services, while the web version does not.

## Limitations of the web version

### Requirements

Currently, Eidos only supports the latest version of chromium-based browsers, such as Chrome, Edge, Arc, and Brave. It recommends a version greater than 122.

Safari, Firefox, and other browsers are not tested yet.

### Why?

Eidos is built on sqlite-wasm and requires browser support for OPFS[1] to work.

Storing data in a local folder is a good practice to ensure better data security. With Chrome 122 and its later versions, we can get persistent permissions[2] for local folders, so we do not have to select a folder every time we open the web app.

1. https://sqlite.org/wasm/doc/trunk/persistence.md#opfs
2. https://developer.chrome.com/blog/persistent-permissions-for-the-file-system-access-api

0 comments on commit 3888cc1

Please sign in to comment.