| 
									
										
										
										
											2016-06-25 12:52:19 +02:00
										 |  |  | --- | 
					
						
							|  |  |  | layout: page | 
					
						
							|  |  |  | title:  "Dependencies" | 
					
						
							|  |  |  | permalink: "/dependencies" | 
					
						
							| 
									
										
										
										
											2016-06-26 09:28:04 +02:00
										 |  |  | order: 10 | 
					
						
							| 
									
										
										
										
											2016-06-25 12:52:19 +02:00
										 |  |  | categories: dependencies | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `jabit-core` contains the Bitmessage context and all entities that will be used by the other modules. | 
					
						
							|  |  |  | Whatever you do, you'll need this. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `jabit-networking` manages connections to the Bitmessage network. This is probably the most complicated | 
					
						
							|  |  |  | part of the Jabit project. TODO | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `jabit-repositories` is where the entities from core are stored. The default implementation uses JDBC | 
					
						
							|  |  |  | to access a H2 database. It should mostly be easy to use other SQL databases (I'll happily accept pull | 
					
						
							|  |  |  | requests) but if you want to use some NoSQL database or a very restricted one (as with SQLite) you might | 
					
						
							|  |  |  | want to create your own implementation. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `jabit-cryptography-bouncy` impmlements everything related to encryption, cryptographic hashes and | 
					
						
							|  |  |  | secure random numbers. As the name suggests, it uses the [Bouncycastle](https://www.bouncycastle.org/) | 
					
						
							|  |  |  | library. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `jabit-cryptography-spongy` is basically a copy of the spongy one, but using | 
					
						
							|  |  |  | [Spongycastle](https://rtyley.github.io/spongycastle/) instead. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TODO | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Add Jabit as Gradle dependency: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | {% highlight groovy %} | 
					
						
							|  |  |  | compile 'ch.dissem.jabit:jabit-core:1.0.0' | 
					
						
							|  |  |  | {% endhighlight %} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Unless you want to implement your own, also add the following: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | {% highlight groovy %} | 
					
						
							|  |  |  | compile 'ch.dissem.jabit:jabit-networking:1.0.0' | 
					
						
							|  |  |  | compile 'ch.dissem.jabit:jabit-repositories:1.0.0' | 
					
						
							|  |  |  | compile 'ch.dissem.jabit:jabit-cryptography-bouncy:1.0.0' | 
					
						
							|  |  |  | {% endhighlight %} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | And if you want to import from or export to the Wallet Import Format (used by PyBitmessage) you might also want to add: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | {% highlight groovy %} | 
					
						
							|  |  |  | compile 'ch.dissem.jabit:jabit-wif:1.0.0' | 
					
						
							|  |  |  | {% endhighlight %} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | For Android clients use `jabit-cryptography-spongy` instead of `jabit-cryptography-bouncy`. |