48 lines
925 B
Markdown
48 lines
925 B
Markdown
# Mellaris
|
|
|
|
Mellaris is a Go library for network stream analysis and filtering.
|
|
|
|
## Usage
|
|
|
|
```go
|
|
package main
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.difuse.io/Difuse/Mellaris"
|
|
)
|
|
|
|
func main() {
|
|
cfg := mellaris.Config{
|
|
IO: mellaris.IOConfig{
|
|
// QueueSize, ReadBuffer, WriteBuffer, Local, RST
|
|
},
|
|
Workers: mellaris.WorkersConfig{
|
|
// Count, QueueSize, TCPMaxBufferedPagesTotal, TCPMaxBufferedPagesPerConn, UDPMaxStreams
|
|
},
|
|
Ruleset: mellaris.RulesetConfig{
|
|
GeoIp: "/path/to/geoip.dat",
|
|
GeoSite: "/path/to/geosite.dat",
|
|
},
|
|
}
|
|
|
|
app, err := mellaris.New(cfg, mellaris.Options{
|
|
RulesFile: "rules.yaml",
|
|
Analyzers: mellaris.DefaultAnalyzers(),
|
|
Modifiers: mellaris.DefaultModifiers(),
|
|
})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer app.Close()
|
|
|
|
_ = app.Run(context.Background())
|
|
}
|
|
```
|
|
|
|
Forked from OpenGFW by apernet: https://github.com/apernet/OpenGFW
|
|
|
|
## LICENSE
|
|
|
|
[MPL-2.0](https://opensource.org/licenses/MPL-2.0) |