jedi
jedi
is a basic multi-resource searching matcher.
The purpose of jedi
is searching matched data from different types of the given data file. jedi
invokes network syscall and encoding package to decode xml/json data into structured data, and jedi
also use goroutine to ensure the speed of these actions.
Feature
Please visit todo list.
Roadmap
First stage, jedi will implement basic function, make sure this stuff avaiable. Second stage, we will improve jedi to showing error message and log clearly, probably support cmd runing and cron task. Last stage, we'll expand jedi to support more middlewares, just like Redis/RPC etc., we want to make it be a stronger network searching matcher. I mean, this is our perspective, we'll do it well, or not.
Getting Started
Usage
» ./jedi -h
Usage of ./jedi:
-keyword string
specific a keyword to query (default "China")
-limit int
how many matched items shows here (default 20)
» ./jedi -keyword="social" -limit=10
TODO
- support concurrency search
- godoc support
- enhenced logger
- test file fully coveraged
- add process bar support
- docker integraty for logger
- support output message color
- fix code format, repalce
if err != nil
with noerr
- cmd and argument control support
- support different type data file(like xml etc.)
- imporve performance(replace json with jsoniter)
- generic support
- data store: MySQL/PostgreSQL
- cache results in local database: Redis/PostgreSQL
- service discovery: etcd/etcd-proxy
- cron task
Architecture
Coding Rule
Please check this post.
Q&A
- When I use command
make gdb
to debug the program, it show me error message like this: Unable to find Mach task port for process-id 22182: (os/kern) failure (0x5). (please check gdb is codesigned - see taskgated(8))
, how can I fix that?
Check this post.
ps: Enable crsutil will conflict with proxychains4-ng, so make your choice.
Contributing
PRs and Issues are also welcome.
Credit
License
MIT.