Coder Social home page Coder Social logo

eppie-io / eppie-app Goto Github PK

View Code? Open in Web Editor NEW
40.0 4.0 4.0 1.35 MB

Eppie — open protocol encrypted p2p email

Home Page: https://eppie.io

License: Apache License 2.0

C# 99.78% CSS 0.21% JavaScript 0.01%
cryptography csharp decentralization email emailclient encryption end-to-end-encryption gmail imap-client outlook

eppie-app's Introduction

Eppie — open protocol encrypted p2p email

LicenseBadge Build and Test Crowdin Release

Intro

Eppie is a next-gen providerless email that allows its users to own their accounts, addresses and data. In addition to its own p2p network Eppie can communicate with other popular decentralized networks, like Ethereum, and is capable of interacting with conventional IMAP/SMTP email. It is beautiful and easy to use, just like a normal email client.

Motivation

Out of 4+ billion email accounts in the world, about 0 belong to users.

A typical mailbox contains all sorts of important private information of our business and social activity, finance, health, consumer behaviour etc. Furthermore email is the primary identity provider in the modern Internet. We use our email address to log in to hundreds of other services. Email is the core of our digital identity. Yet we do not own it. It is controlled by a server and therefore belongs to the technology provider. The server decides whether to allow us to use our identity or not. This is a privacy violation by design. Identity naturally belongs to human, it should not be a service.

At its core, the users’ confidence that their data is accessible to them, and not to anyone else, relies on trust in the service. Privacy based on trust is weak. In Eppie mailbox belongs exclusively to the owner of the private key. Eppie operates autonomously in a p2p networks There are no servers or other authorities ‘providing the service’ and therefore controlling the data. Nobody has access to data, even us, the developers. The system relies solely on strong cryptography and the decetralized architecture.

Features

Eppie is early in development. The p2p part is not publicly available at the moment. For now it works as a conventional email client with additional security features:

  • Compatibility with Gmail, Microsoft Outlook and other major email providers.
  • Eppie can authentication at Proton Mail servers (which no other native desktop clients can do, as far as we are aware).
  • PGP encryption is supported.
  • Local account created with BIP39 standard Seed-Phrase.
  • Encrypted local backup.

Install from Microsoft Store, App Store or Google Play

There's a preview version currently available at Microsoft Store.

Download

WIP

Downloads

You may download the latest release for your system:

Windows Installer

Linux Binaries

WIP

macOS Binaries

WIP

Android Binaries

WIP

Build from Source Code

Universal Windows Project

Prerequisites

  • OS: Windows 10 or later
  • IDE: Visual Studio 2022 with installed workloads and components:
    • .Net Multi-platform App UI development
      • Android SDK setup (with Android SDK Platform 31)
      • .NET profiling tools
      • Xamarin
    • Windows application development
      • Universal Windows Platform tools
      • Windows 11 SDK (10.0.22621.0)
      • Windows 10 SDK (10.0.19041.0)

Note

You can add the Android SDK Platform 31 api in the Platforms tab in the Android SDK Manager
Visual Studio Menu: ToolsAndroidAndroid SDK Manager

To Clone

git clone --recursive https://github.com/Eppie-io/Eppie-App.git eppie-app

To Build and Launch

  1. Open the src/Eppie.App/Eppie.App.sln file in the Visual Studio
  2. Set the Eppie.App.UWP project as your starting project
  3. Select x64 platform
  4. Start building the solution (Visual Studio Menu: BuildBuild Solution)
  5. Launch the Eppie.App.UWP project (Visual Studio Menu: DebugStart Debugging)

Linux

WIP

macOS

WIP

Planned Features

As the project matures more features will be added, including but not limited to

  • Creating a decentralized Eppie account
  • Encrypted p2p messaging
  • Encrypted decentralized backup
  • Connecting existing decentralized identities, e.g. ENS

Technology Stack

At launch Eppie will to store the data using IPFS infrastructure, and the transport layer will work through SBBS. With that being said, the architecture allows to easily plug in multiple storage and transport technologies. Eppie's e2e encryption is based on Elliptic-curve cryptography. GUI application is being written in C# with Uno, and CLI is pure C#. Eppie targets Windows, macOS, Linux, iOS, and Android platforms.

Contribution

First of all this is a pretty ambitiois project and we are greateful beyond measure for every bit of help from our community. If you decide to contribute, please create an issue first, or find an existing one, unless it's a very minor fix, like a typo.

Here you can help Eppie with localization.

Also, feel free to subscripe to our waiting list. We might invite you for an interview or beta testing.

eppie-app's People

Contributors

al-kau avatar dependabot[bot] avatar fokuspokus avatar valerafinebits avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

eppie-app's Issues

[Task] Upgrading to Uno Platform 5.3

Description

The application must use Uno Platform version 5.3 and run on the following platforms:

  • Android
  • iOS
  • Web (WASM)
  • macOS (Catalyst, Desktop)
  • Linux (Desktop)
  • Windows(WinUI, UWP, Desktop)

Subtasks

  • #298
  • Create a new Uno Platform 5.3 project
  • Add new UWP project to the solution
  • Add new Shared project to the solution
  • Set up configuration files
  • Set up errors and warnings
  • Set up code analyzers
  • Set up a CI workflow
  • Add projects from submodules
  • Migrate Shared code (Views, ViewModels, etc.) from previous version

Additional Context

Add Option to Enable/Disable Logging to File

Description

Introduce an option within the settings to enable or disable logging to a file. This feature will provide users with the ability to control the logging functionality without needing to alter configuration files or use command-line arguments. By default, logging should be disabled to prevent unnecessary use of resources and potential privacy concerns. When logging is enabled by the user, a warning message should be displayed to inform them that logging is active.

Intended Use-Case

This feature will be used by users who need to enable logging for debugging or issue tracking purposes. By providing a simple checkbox in the settings, users can easily toggle logging without technical knowledge or additional tools. This enhances the overall user experience and ensures that logging can be managed efficiently and securely.

For example, a user experiencing issues with the application can enable logging from the settings menu, reproduce the issue, and then disable logging once done. The generated log file can then be reviewed or sent to support for further analysis.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.