forked from aaronfeng/trixx
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME
131 lines (98 loc) · 4.53 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
"Yo rabbit, Trixx are for hackers"
The goal of Trixx is to build an administration and monitoring tool for RabbitMQ.
Trixx is written in Clojure and, therefore, is available for all languages that
run on JVM.
A web-service layer has been added around core Trixx that returns JSON. This
enable easy consumption for non-JVM based languages. Trixx Web Management
Console is written in Ruby and should be JRuby compatible.
Features of Trixx:
* add exchange
* delete exchange
* list exchanges
* add queue
* delete queue
* list queues
* add binding
* list bindings
* stop app
* start app
* reset
* add vhost
* delete vhost
* list vhosts
* add user
* delete user
* list users
* list connections
* set permissions
* clear permissions
* list vhost permissions
* list user permissions
Currently, there is no user interface associated with Trixx, but the eventual
goal is to provide a nice web interface (hopefully in the next few weeks). Also,
the core code is likely to change drastically in the next few months because of
heavy development.
At the moment, all the features provided by Trixx are also provided by
rabbitmqctl command line utility, which ships with RabbitMQ. So you can
think of the core of Trixx as an API around rabbitmqctl for JVM languages.
Trixx was started as an experiment to learn more about Clojure and RabbitMQ.
During my experiment, many people expressed interest in such a tool. So
I am making this freely available in hopes that people will find it useful and
possibly contribute to the project.
I also wrote a Scala version of Trixx for the same reason. However,
I will probably only continue the development only with the Clojure version.
But if you are interested in building out the Scala version please let me know.
I'll include the source in a contrib folder for anyone that is interested.
Trixx requires RabbitMQ Java client and RabbitMQ broker from the hg repository,
changeset: 329:f4073af3d546 and changeset: 1054:fce2dad390ee respectively.
However, some features might work with the released version of the broker.
For example, the ACL feature is only in trunk version of the broker at this time,
so attempts to use permissions related functionalities in Trixx will result in error.
Since Trixx directly communicates with Erlang nodes, it requires JInterface. Trixx
is using Erlang 6.5 at the time of this writing.
Building
--------------------------------------------------------------------------------
To build from source:
ant fetch-deps compile-rabbit-server jar
Note that we've included a specific version of RabbitMQ at this time. You'll
have to have Erlang installed so it can be built. RabbitMQ will get built by
the compile-rabbit-server target.
Then in separate terminals, first run the rabbit server:
ant run-rabbit
Then the trixx server:
ant run-trixx
Open your browser to any of:
http://localhost:8080/users
http://localhost:8080/exchanges
http://localhost:8080/queues
http://localhost:8080/connections
http://localhost:8080/bindings
* There are more operations available, but cannot be queried in the browser.
Use Web Management Console to explore these features.
The trixx server is a web-services interface to the administrative features
provided by the trixx library which returns JSON. To run the Ruby Web Management
Console, use
ant run-www
This runs on http://localhost:3000/
http://localhost:3000/users - list all users
http://localhost:3000/users/new - add a new user
http://localhost:3000/users/guest/edit - edit user "guest"
http://localhost:3000/users/guest - delete user when DELETE http request is used
http://localhost:3000/exchanges - list all exchanges
http://localhost:3000/queues - list all queues
http://localhost:3000/bindings - list all bindings
http://localhost:3000/connections - list all connections
http://localhost:3000/rabbit - stop, start and reset application
* More features coming soon.
Dependencies
--------------------------------------------------------------------------------
We are making an effort to ensure that Trixx and its dependencies are java 1.5
compatible. If you are working on Trixx and would like to submit changes back
to the core repository, please ensure that your code is 1.5 compatible.
Contact
--------------------------------------------------------------------------------
If you have any questions/problems/suggestions with Trixx I can be contacted
in the following ways:
Email: [email protected]
Twitter: aaronfeng
Blog: leftrightfold.com