Giter Site home page Giter Site logo

tamajitchakraborty / otr4j Goto Github PK

View Code? Open in Web Editor NEW

This project forked from otr4j/otr4j

0.0 2.0 0.0 4.41 MB

Off-The-Record messaging encryption written in pure Java

Home Page: https://otr.cypherpunks.ca

License: GNU Lesser General Public License v3.0

Java 100.00%

otr4j's Introduction

Synopsis

otr4j is an implementation of the OTR (Off The Record) protocol in Java. Its development started during the GSoC '09 where the goal was to add support for OTR in jitsi. It currently supports OTRv1, OTRv2 and OTRv3. Additionally, there is support for fragmenting outgoing messages.

For a quick introduction on how to use the library have a look at the DummyClient.

Contributing

This is the friendly, community fork of jitsi/otr4j that meant to be steered by contributors. It also does not require the signing of a Contributor License Agreement (CLA).

Here are the guidelines everyone follows:

  • any developer can request push access, regardless of project or organization affiliation
  • all contributors submit code via pull requests
  • new commits must be pushed by the reviewer of the pull request, not the author
  • "lazy consensus" approach for granting push access:
    • anyone with push access can vote/veto
    • if about a week or so has passed after requesting push access and no one has objected, then that requester can be granted push access

Git setup

Git makes this kind of workflow easy. The core idea is to set up each contributor's git repo as a git remote, then you can get all updates using git fetch --all. You can then view all of the remotes using a good git history viewer, like gitk, which is part of the official git.

For more info: A tag-team git workflow that incorporates auditing

Code Style

otr4j uses a code style comparable to the Android code style guidelines. The one major exception is that no prefixes for members and static variables are used. In order to verify that this style and several additional requirements are met, Checkstyle and PMD are integrated into the maven build. As a contributor, please check that your changes adhere to the style by running mvn site and observing the generated HTML outputs at the location target/site/index.html. All major IDEs have plugins to support inline checks with Checkstyle and PMD, which makes it much easier to verify the rules already while coding. The respective configuration files can be found in the codecheck folder.

Eclipse

You can use Maven to generate Eclipse project files. First, set up the Maven environment (this assumes a Debian-esque machine):

apt-get install maven git
git clone https://github/com/otr4j/otr4j.git
cd otr4j
mvn dependency:list
mvn eclipse:eclipse

Now in Eclipse, run:

  1. File -> Import... -> General -> Existing Projects into Workspace
  2. Right-click on the otr4j project, and choose Properties
  3. In Java Build Path, click on the Libraries tab
  4. Click the Add Variable... button
  5. add a new variable called M2_REPO with the path set to ~/.m2/repository

It is probably also possible to use the M2Eclipse Maven integration plugin for more direct integration. That requires the very latest version of Eclipse. The setup instructions should be more straightforward.

otr4j's People

Contributors

eighthave avatar a-iv avatar cobratbq avatar languitar avatar mdzhigarov avatar gpolitis avatar tribut avatar devrandom avatar mt4nguy avatar mmb avatar aelmahmoudy avatar

Watchers

James Cloos avatar Tamajit Chakraborty avatar

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.