-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
26 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,28 @@ | ||
# omnilock | ||
|
||
A zero dependency lock manager | ||
A zero dependency locker. | ||
|
||
## How does it work? | ||
|
||
This locker uses TCP connections to keep track of locks. | ||
This way, a lock is freed as soon as the locking process ends (some way or another) or it's unlocked explicitly. | ||
|
||
## Protocol | ||
|
||
1. Open a TCP connection to the omnilock server | ||
2. Send a lock command through the established connection (e.g. `lock my_lock`) | ||
3. Read the response, it may be either `success`, `failed` or `error: something went wrong` | ||
4. Do your things on the client side | ||
5. Either unlock the lock explicitly: `unlock my_lock` or just let the process exit so the OS closes the connection | ||
|
||
Note: All commands and responses end with `\n` (newline). | ||
|
||
## Usage as docker image | ||
|
||
Start the server with: | ||
|
||
```shell | ||
docker run --rm -it -p 7194:7194 ghcr.io/nitwhiz/omnilock:lastest | ||
``` | ||
|
||
And connect to it via port 7194. |