summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README97
1 files changed, 97 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..ce75a13
--- /dev/null
+++ b/README
@@ -0,0 +1,97 @@
+= Trunks
+:toc:
+:sectanchors:
+:sectlinks:
+
+Trunks is a Go library that provide HTTP service with web user interface
+to test HTTP and/or WebSocket endpoints and for load testing HTTP endpoints.
+
+For testing HTTP endpoints it use the
+https://pkg.go.dev/github.com/shuLhan/share/lib/http[lib/http^]
+package as the client, a wrapper for standard Go HTTP package.
+For testing WebSocket endpoints it use the
+https://pkg.go.dev/github.com/shuLhan/share/lib/websocket[lib/websocket^]
+package as the client.
+For the load testing we use
+https://github.com/tsenart/vegeta[vegeta^]
+as the backend.
+
+https://pkg.go.dev/git.sr.ht/~shulhan/trunks[Go doc^].
+
+== Usage
+
+See the
+https://git.sr.ht/~shulhan/trunks/tree/main/item/example/[example^]
+package on how to programmatically use and create service using this module,
+or,
+
+* clone this repository,
+* execute `make dev`, and
+* open http://127.0.0.1:8217.
+
+
+== Screenshots
+
+The following screenshot display the main interface to Run or Attack the
+registered HTTP service,
+
+image:https://git.sr.ht/~shulhan/trunks/blob/main/_screenshots/trunks_example.png[Main interface,640]
+
+The following screenshot display the result of attack in two forms, vegeta
+metrics and vegeta histogram,
+
+image:https://git.sr.ht/~shulhan/trunks/blob/main/_screenshots/trunks_attack_result.png[Attack result,640]
+
+
+== Web user interface (WUI)
+
+By default, the Trunks user interface can be viewed by opening in browser at
+http://127.0.0.1:8217.
+One can change address through Environment's ListenAddress.
+
+
+== File name format
+
+Each attack result is saved in Environment's ResultsDir with the following
+file name format,
+
+ <Target.ID> "." <HttpTarget.ID> "." <DateTime> "." <Rate> "x" <Duration> "." <ResultsSuffix>
+
+The "DateTime" is in the following layout,
+
+ YearMonthDate "_" HourMinuteSeconds
+
+The "ResultsSuffix" is the one that defined in Environment.
+
+
+== Development
+
+https://git.sr.ht/~shulhan/trunks[Repository^]:: Link to the source code.
+
+https://lists.sr.ht/~shulhan/trunks[Mailing list^]:: Link to discussion and
+where to send patches.
+
+https://todo.sr.ht/~shulhan/trunks[Issues^]:: Link to report for bug or
+feature.
+
+
+== Credits
+
+The Trunks icon and image is provided by https://www.spriters-resource.com/.
+
+== License
+
+Copyright (C) 2021 M. Shulhan <ms@kilabit.info>
+
+This program is free software: you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free Software
+Foundation, either version 3 of the License, or (at your option) any later
+version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+details.
+
+You should have received a copy of the GNU General Public License along with
+this program. If not, see <http://www.gnu.org/licenses/>.