Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Volkswagen | 12,655 | 5 | 5 | 2 months ago | 15 | October 16, 2015 | 61 | mit | JavaScript | |
:see_no_evil: Volkswagen detects when your tests are being run in a CI server, and makes them pass. | ||||||||||
Tcpcopy | 4,172 | 6 months ago | 112 | other | C | |||||
An online request replication tool, also a tcp stream replay tool, fit for real testing, performance testing, stability testing, stress testing, load testing, smoke testing, etc | ||||||||||
Glusterfs | 4,105 | 9 days ago | 217 | gpl-2.0 | C | |||||
Gluster Filesystem : Build your distributed storage in minutes | ||||||||||
Papercut Smtp | 2,546 | 2 months ago | 38 | JavaScript | ||||||
Papercut SMTP -- The Simple Desktop Email Server | ||||||||||
Smtp4dev | 2,241 | 1 | 1 | 3 months ago | 69 | January 07, 2021 | 69 | bsd-3-clause | C# | |
smtp4dev - the fake smtp email server for development and testing | ||||||||||
Mongodb Memory Server | 2,220 | 619 | 546 | 9 days ago | 282 | September 25, 2022 | 18 | mit | TypeScript | |
Spinning up mongod in memory for fast tests. If you run tests in parallel this lib helps to spin up dedicated mongodb servers for every test file in MacOS, *nix, Windows or CI environments (in most cases with zero-config). | ||||||||||
Start Server And Test | 1,393 | 751 | 726 | 3 months ago | 61 | September 02, 2021 | 72 | mit | JavaScript | |
Starts server, waits for URL, then runs test command; when the tests end, shuts down server | ||||||||||
Fakesmtp | 881 | 7 | 2 years ago | 1 | May 21, 2015 | 53 | other | Java | ||
Dummy SMTP server with GUI for testing emails in applications easily. | ||||||||||
Abstruse | 869 | 4 months ago | 81 | June 21, 2018 | 30 | mit | Go | |||
Abstruse is a free and open-source CI/CD platform that tests your models and code. | ||||||||||
Jsftp | 740 | 549 | 165 | 4 years ago | 84 | January 16, 2018 | 51 | mit | JavaScript | |
Light and complete FTP client implementation for Node.js |
===========
A REPL cli client made in go for pitaya.
go install github.com/topfreegames/pitaya-cli/v2
For cli flags, run pitaya-cli --help
$ pitaya-cli
Pitaya REPL Client
>>> help
Commands:
clear clear the screen
connect connects to pitaya
disconnect disconnects from pitaya server
exit exit the program
help display help
notify makes a notify to pitaya server
push insert information of push return
request makes a request to pitaya server
sethandshake sets a handshake parameter
For connecting to a server that uses protobuf as serializer the server must implement two routes:
To implement those routes you can use some functions provided by pitaya, here is a short example of both routes:
import (
// ...
"github.com/topfreegames/pitaya"
"github.com/topfreegames/pitaya/protos"
)
// Docs handler
func (c *MyHandler) Docs(ctx context.Context) (*protos.Doc, error) {
d, err := pitaya.Documentation(true)
if err != nil {
return nil, fmt.Errorf("failed to generate documentation for pitaya routes: %w", err)
}
doc, err := json.Marshal(d)
if err != nil {
return nil, fmt.Errorf("failed to encode documentation JSON: %w", err)
}
return &protos.Doc{Doc: string(doc)}, nil
}
// Descriptors route
func (c *MyHandler) Descriptors(ctx context.Context, names *protos.ProtoNames) (*protos.ProtoDescriptors, error) {
descriptors := make([][]byte, len(names.Name))
for i, protoName := range names.Name {
desc, err := pitaya.Descriptor(protoName)
if err != nil {
return nil, fmt.Errorf("failed to get descriptor for '%s': %w", protoName, err)
}
descriptors[i] = desc
}
return &protos.ProtoDescriptors{Desc: descriptors}, nil
}
When initilizing the CLI, you have to provide the docs route as the following:
pitaya-cli -docs connector.docsHandler.docs
NOTE: The descriptors handler is automatically discovered by the client. It must only follow the signature mentioned earlier.
A full example of running pitaya-cli with protobuf:
pitaya-cli -docs connector.docsHandler.docs
>>> push connector.playerHandler.matchfound protos.FindMatchPush
>>> connect localhost:30124
>>> request connector.playerHandler.create
>>> request connector.playerHandler.findmatch {"RoomType":"xxxx"}
You can edit handshake parameters before connecting to the server.
You may pass the full handshake json:
Pitaya REPL Client
>>> sethandshake {"sys":{"clientVersion":"1.0.6", "clientBuildNumber":"999","platform":"ios"}}
Or edit one of three specific parameters:
Pitaya REPL Client
>>> sethandshake platform ios
>>> sethandshake buildNumber 999
>>> sethandshake version 1.0.6
It's possible to add a list of sequential requests into a file and pitaya-cli will execute them in order.
For example: commands.txt
connect localhost:3250
request connector.playerHandler.create
request connector.playerHandler.findmatch {"RoomType":"xxxx"}
Then run: pitaya-cli --filename commands.txt