The goal of fidi (φίδι) is to model some aspects of arbitrarily complex services, and simulate the behaviour of the service business logic (without actually containing any real business logic or complexity) in presence of external stimuli. Each instance of the φίδι (fidi) application can mock a node in the complex, client-server service that it is mocking. Different instances of fidi (φίδι) talk to other instances of themselves, like a snake (φίδι) eating its tail.
fidi (φίδι) should be available in any recent Debian based distribution, and should be installable as any other package. Alternatively, the latest version of fidi (φίδι) should be available on github at https://github.com/srivasta/fidi.
For the packaged version, full HTML documentation lives in /usr/share/doc/fidi/html/. If you are building from source, the documentation lives in ./docs/html/ after the build is finished.
Use documentation is also provided in the form of manual pages. See fidi_lint (1), fidi_app (1) and fidi_request (5). In the source, these man pages live in the ./docs/ directory.
If you are using the pre-packaged version of fidi (φίδι), the prerequisites should be installed already. If you are planning on building it from source, the following packages are required:
- autoconf
- automake
- A C++ compiler able to handle C++17 (gcc version 8, for example)
- make
- fex
- bison
- doxygen
- graphviz
- plantuml
- libpoco-dev
sudo apt install build-essential autoconf automake gcc-8 flex \
bison doxygen graphviz plantuml libpoco-dev
If your distribution already contains fidi (φίδι), you should be able to simply install the package.
sudo apt install fidi
If you want to install from source, please see the INSTALL file for details.
Once you have run make, you can test the newly built package with
./fidi_lint src/input.txt
There is a rudimentary Dockerfile provided, that creates a full Debian Sid based docker image with fidi installed. You can create it from source by running
make docker-image-full
after the build has completed.
You can send fidi (φίδι) bug reports to [email protected].
- Manoj Srivastava [email protected] - Initial work - github
Copyright 2018-2019 Google LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
- Hat tip Nick Jones [email protected] for the problem statement and requirements