]> git.lizzy.rs Git - hydra-dragonfire.git/blobdiff - README.md
Merge pull request #4 from Minetest-j45/master
[hydra-dragonfire.git] / README.md
index 7eba37916577fd1e75191478afc8ea5368370dd4..1ac344d017bdf1995cdeb47b5dc90b8f2d7a1d83 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,23 +1,23 @@
 # Hydra
 <img src="https://cdn8.picryl.com/photo/2016/05/14/hydra-from-bl-royal-12-c-xix-f-13-b31e4a-1024.jpg" width="500" />
 
-Lua bindings for client side minetest protocol - written in Go, using [anon5's mt package](https://github.com/anon55555/mt).
+Lua bindings for client side minetest protocol - written in Go, using [a fork](https://github.com/dragonfireclient/mt) of [anon5's mt package](https://github.com/anon55555/mt).
 Capable of deserializing ToClt packets and serializing ToSrv packets.
 
 Main use case are bot clients. Multiple clients can easily be spawend and polled from one script - hence the name "Hydra".
 Hydra may also be useful for integration testing or network debugging.
 
-Hydra is WIP: there are bugs, API may change any time, some packets are unimplemented and many components are yet to be added.
+Hydra is WIP: there are bugs, API may change any time, doc is incomplete, some packets are unimplemented and many components are yet to be added. However, hydra can already be used and big parts of it's main functionality are implemented.
 
 # Installation
 Go 1.18 is required.
 `go install github.com/dragonfireclient/hydra-dragonfire@latest`
 
 # Invocation
-Due to limitations of Go, hydra can not simply be required from a Lua script. Instead, the hydra binary has to be invoked with a script as argument:
+Due to limitations of Go, hydra unfortunately cannot be `require()`'d from a Lua script. Instead, the hydra binary has to be invoked with a script as argument:
 `hydra-dragonfire file.lua <args>`. Any additional arguments `<args>` are provided to the script.
 
-# Architecture
+# Architecture Overview
 By default, hydra will only take care of connection and packet serialization, no state management takes place.
 Hydra is a library, not a framework: it does not organize your code and there is no module system.
 
@@ -27,12 +27,8 @@ Only selected packets will be returned by `poll`, to avoid unnecessary conversio
 Poll will return early if the script is interrupted by a signal, one of the selected clients is disconnected or the configured timeout elapses.
 
 Additionally, different native components can be enabled per-client to manage state.
-Currently only the `auth` component is available, but components like `map`, `objs`, `inv`, `pos`, `playerlist` etc. will be added in the future.
-Components handle packets asynchronously, they will process 
+Currently `auth` and `map` components are available, and components like `objs`, `inv`, `pos`, `player_list` etc. will be added in the future.
+Components handle packets asynchronously, they will process them even if poll is not called.
 
-# Documentation
-For available packets, see `spec/client` and `spec/server`.
-
-For available utilities, see `builtin`.
-
-Documentation for native functions is yet TODO.
+# Further Documentation
+[API documentation](doc/api.md)