• Stars
    star
    159
  • Rank 235,916 (Top 5 %)
  • Language
    TypeScript
  • License
    BSD 3-Clause "New...
  • Created about 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Etebase TypeScript API for the web, node and react-native!

Etebase - your end-to-end encrypted backend

The Etebase TypeScript client API for the web, node and react-native!

GitHub tag NPM version Build Status Chat with us

What is it?

Etebase is an end-to-end encrypted backend as a service. Think Firebase, but encrypted in a way that only your users can access their data.

Etebase makes it easy to build end-to-end encrypted applications by taking care of the encryption and its related challenges. It is fully open-source (clients and server) so anyone can review, audit or contribute to its development!

Using Etebase in your project

This repository is the JavaScript/TypeScript library for communication with an Etebase server (there also exists libraries for Python, Java, Kotlin, C/C++ and Rust). See https://docs.etebase.com/installation for details on how to install the library and dependencies.

The following is a minimal example of how to change the Etebase password.

import * as Etebase from 'etebase';
const etebase = await Etebase.Account.login("username", "password");
await etebase.changePassword("new password");
await etebase.logout();

There are more examples in the Guides section at https://docs.etebase.com/.

Known issues

If you get build errors complaining about export = URI; from urijs then you need to set compilerOptions.allowSyntheticDefaultImports to true in tsconfig.json.

Examples of projects that use Etebase

  • EteSync Notes - A secure, end-to-end encrypted, and privacy-respecting notes mobile application.
  • EteSync Web - A secure, end-to-end encrypted, and privacy-respecting notes web frontend application.
  • EteSync DAV - Provides a local CalDAV and CardDAV server that acts as an EteSync compatibility layer/adapter for clients such as Thunderbird, Outlook and Apple Contacts to connect with EteSync.

Building Etebase

git clone https://github.com/etesync/etebase-js
cd etebase-js
yarn install
yarn run build

Running tests requires a (test) Etebase server running, defaulting to http://localhost:8033, but can be overridden with the environment variable ETEBASE_TEST_API_URL.

cd ..
git clone https://github.com/etesync/server
cd server

... # Follow README.md install instructions
... # Build and start a server

cd ../etebase-js
env ETEBASE_TEST_API_URL=http://localhost:8033 yarn run test

Known issues

Yarn is required for building this project, attempting to use npm will fail.

More Repositories

1

server

The Etebase server (so you can run your own)
Python
1,508
star
2

android

EteSync - Secure, end-to-end encrypted, and privacy respecting sync for your contacts, calendars and tasks.
Kotlin
295
star
3

etesync-dav

This is a CalDAV and CardDAV adapter for EteSync
Python
290
star
4

etesync-web

An EteSync web client
TypeScript
244
star
5

etebase-rs

A Rust client library for Etebase
Rust
116
star
6

etesync-notes

An EteSync backed note taking app
TypeScript
83
star
7

etebase-py

A Python client library for Etebase
Rust
68
star
8

etebase-java

A Java/Android client library for Etebase
Rust
54
star
9

etebase-go

A (work in progress) Go client library for Etebase
Go
49
star
10

ios

EteSync - Secure, end-to-end encrypted, and privacy respecting sync for your contacts, calendars and tasks.
TypeScript
45
star
11

journal-manager

EteSync - server django app
Python
36
star
12

etebase-docs

The Etebase documentation
JavaScript
32
star
13

EteSync-4-TbSync

[Thunderbird Add-On] The EteSync provider for TbSync to sync contacts, tasks and calendars to Thunderbird.
JavaScript
32
star
14

libetebase

The C client-side library
Rust
29
star
15

etebase-swift

[COMING SOON] A Swift client library for Etebase
21
star
16

etebase-csharp

A C# client library for Etebase
Rust
17
star
17

cli-client

A command line tool for accessing the EteSync journal and collections (e.g. Calendars)
Python
17
star
18

etebase-ruby

[COMING SOON] A Ruby client library for Etebase
14
star
19

radicale_storage_etesync

An EteSync storage plugin for Radicale
Python
12
star
20

argon2-webworker

A web worker wrapper for argon2-browser to easily use it from a web worker
JavaScript
5
star
21

expo-crypto

A minimal and purpsuefully incomplete node-crypto implementation using expo-random
JavaScript
3
star