small fix in client, more docs
This commit is contained in:
1 parent
192f7e135f
commit
745eb9ccdf
7 files changed
+66
-16
No files matched your search
@@ -1,8 +1,32 @@
|
||||
# Kiloparsec
|
||||
|
||||
_The protocol is under active development, early access stage. Please wait for alfa!_
|
||||
The new generation of __PARanoid SECurity__ protocol, advanced, faster, more secure. It also allows connecting any "block device" transport to the same local interface. Out if the box it
|
||||
provides the following transports:
|
||||
|
||||
The new generation of __PARanoid SECurity__ protocol, advanced, faster, more secure.
|
||||
| name | JVM | JS | native |
|
||||
|----------------|-----|----|--------|
|
||||
| TCP/IP server | * | | |
|
||||
| TCP/IP client | * | | |
|
||||
| Websock server | * | | |
|
||||
| Websock client | * | * | * |
|
||||
|
||||
## TCP/IP transport
|
||||
|
||||
It is the fastest. JVM implementation uses nio2 async sockets and optimizes TCP socket to play
|
||||
well with blocks (smart NO_DELAY mode). It is multiplatform, nut lacks of async TCP/IP support
|
||||
on natvic targetm this is where I need help having little time. I'd prefer to use something asyn like UV on native targets.
|
||||
|
||||
I know no existing way to implement it in KotlinJS for the modern browsers.
|
||||
|
||||
## Websock server
|
||||
|
||||
While it is much slower than pure TCP, it is still faster than any http-based transport. It uses binary frames based on the Ktor server framework to easily integrate with web services. We recommend using it instead of a classic HTTP API as it beats it in terms of speed and server load even with HTTP/2.
|
||||
|
||||
We recommend to create the `KiloInterface<S>` instance and connect it to the websock and tcp servers in real applications to get easy access from anywhere.
|
||||
|
||||
# Usage
|
||||
|
||||
# Details
|
||||
|
||||
It is not compatible with parsec family and no more based on an Universa crypto library. To better fit
|
||||
the modern state of threats and rate of cyber crimes, KiloParsec uses more encryption and random key exchange on each
|
||||
@@ -10,9 +34,9 @@ and every connection (while parsec caches session keys to avoid time-consuming k
|
||||
keys cryptography for session is shifted to use ed25519 curves which are supposed to provide agreeable strength with
|
||||
enough speed to protect every connection with a unique new keys. Also, we completely get rid of SHA2.
|
||||
|
||||
Kiloparsec also uses a denser binary format (bipack, no more key-values)
|
||||
Kiloparsec also uses a denser binary format [bipack](https://gitea.sergeych.net/SergeychWorks/mp_bintools), no more key-values,
|
||||
which reveals much less on the inner data structure, providing advanced
|
||||
typed RPC interfaces with kotlinx.serialization.
|
||||
typed RPC interfaces with kotlinx.serialization. There is also Rust implementation [bipack_ru](https://gitea.sergeych.net/DiWAN/bipack_ru).
|
||||
The architecture allows connecting same functional interfaces to several various type channels at once.
|
||||
|
||||
Also, the difference from parsecs is that there are no more unencrypted layer commands available to users.
|
||||
|
||||
Reference in new issue
Block a user