readme added
This commit is contained in:
		
							parent
							
								
									0ed084aeee
								
							
						
					
					
						commit
						a671414b55
					
				
							
								
								
									
										66
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,66 @@
 | 
			
		||||
# PARanodi SECuruty 3 protocol
 | 
			
		||||
 | 
			
		||||
This is a connection-agnostic, full-duplex RPC type binary protocol, effective to work with binary data, such as encrypted data, keys, multimedia, etc. Its key points are:
 | 
			
		||||
 | 
			
		||||
- simple and practical transport RPC layer, which is a primary choice when, for exaple, `wss://` level by TSL is enough, e.g. when there is no sensitive data being transmitted (games, etc).
 | 
			
		||||
 | 
			
		||||
- can easily be used with UDP (it has not too big binary frames that do not depend on the reception order)
 | 
			
		||||
 | 
			
		||||
- asynchronous full-duplex multithreaded RPC: any number commands from both parties can be executed in parallel.
 | 
			
		||||
 | 
			
		||||
- coroutine-based, fast implementation.
 | 
			
		||||
 | 
			
		||||
- compile-time types/invokation checks
 | 
			
		||||
 | 
			
		||||
- out of the box fast coroutine based websocket client (JVM+JS) and setver (JVM:ktor) implementations are provided.
 | 
			
		||||
 | 
			
		||||
- Kotlin Multiplatform: works the same in JVM/JS (and android too) 
 | 
			
		||||
 | 
			
		||||
The protocol is a result of reconsidering the pratcial usage of its predecessor, parsec2 protocol. This version is not a part of the Universa effort but an independent personal project of universa CTO.
 | 
			
		||||
 | 
			
		||||
## Status
 | 
			
		||||
 | 
			
		||||
Transport layer for wbesockets is being tested in commercial environment, while its public interface still is in aplpha stage and is not yet frozen.
 | 
			
		||||
 | 
			
		||||
Secure layer is not yet published, as R&D and desting are still under way.
 | 
			
		||||
 | 
			
		||||
You can try and use transport layer but be prepared to minor interface changes.
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
Insofar, we use localMaven: clone it and use `./gradlew publishToMavenLocal`, then add dependency:
 | 
			
		||||
 | 
			
		||||
```kotlin
 | 
			
		||||
repsitories {
 | 
			
		||||
    // ...
 | 
			
		||||
    mavenLocal()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//...
 | 
			
		||||
    dependencies {
 | 
			
		||||
        api("net.sergeych:parsec3:0.0.1-SNAPSHOT")
 | 
			
		||||
    }
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
## FAQ
 | 
			
		||||
 | 
			
		||||
### Why not github?
 | 
			
		||||
 | 
			
		||||
Two reasons:
 | 
			
		||||
 | 
			
		||||
1. I don't want to depend on US crazy ideas like limit usage of its services to anybody who their governent won't like next week.
 | 
			
		||||
2. My ethic is against usage of open source in _paid services_ like gothub's copilot.
 | 
			
		||||
 | 
			
		||||
### Why not universa?
 | 
			
		||||
 | 
			
		||||
Again, two reasons:
 | 
			
		||||
 | 
			
		||||
1. This is my own project, I don't want to get under any trademark, codes and whatever limits.
 | 
			
		||||
 | 
			
		||||
2. Its security model is intended to be more universal than just universa to use more trust sources, so it is again not ethically adequate to develop it using universa resources.
 | 
			
		||||
 | 
			
		||||
## LICENSE
 | 
			
		||||
 | 
			
		||||
Will soon be published under MIT or similar.
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user