4. Source code¶
The source code of FRED is divided into several subprojects.
The subprojects belong to one of the following groups depending on which tools are used to build them:
::A:: stands for Autotools (used only for fred-db now),
::C:: stands for CMake (used with C++ code)
::D:: stands for FRED Distutils (used with some remaining Python code),
::S:: stands for standard Python Setuptools.
Note
This is a transitional state, it will get better in the following version.
Each subproject has its own GitHub repository.
4.1. Subprojects and repositories¶
Core
::C:: fred-akm – a CLI CORBA client for automated keyset management
::C:: fred-cdnskey-scanner – a CLI tool to scan a set of domains for CDNSKEY records
::S:: fred-client – a Python EPP client – a CLI application and an API library
::A:: fred-db – a collection of SQL scripts to set up the database in PostgreSQL
::S:: fred-doc2pdf – a Python wrapper over
rml2pdf
used for generation of PDF documents::C:: fred-idl – IDL interface definitions for CORBA inter-process communication
::C:: fred-libfred NEW – a C++ library implementing operations on core registry objects (dependency for
fred-server
)::C:: fred-mod-corba – an Apache module serving other two modules (EPP, WHOIS) the common functionality of CORBA communication
::C:: fred-mod-eppd – an Apache module for parsing EPP commands and transforming them into CORBA calls to a back-end server (and vice versa)
::C:: fred-mod-whoisd – an Apache module for processing WHOIS commands and transforming them into CORBA calls to a back-end server (and vice versa)
::D:: fred-pyfred – a Python CORBA server and clients for zone-file generation, email communication, and technical checks, including file-manager components
::S:: fred-rdap – an RDAP server (front end) prototype implemented with Django
::C:: fred-server – C++ CORBA servers (back end) for the core registry functionality and a CLI administration tool
::S:: fred-webadmin – the Daphne web administration server (front end) for registry customer support (mainly registrar creation and activity inspection)
::S:: fred-webwhois – the web WHOIS server (front end) implemented with Django
Utilities
::S:: fred-utils-distutils – a Python wrapper over
python-setuptools
(necessary for installation of some FRED subprojects in Python)::S:: fred-utils-pyfco – a Python wrapper over CORBA (used by fred-rdap, fred-webwhois, fred-webadmin)
::S:: fred-utils-pylogger – a Python wrapper over logging infrastructure for all Python clients (used by fred-rdap, fred-webwhois, fred-webadmin)
::S:: fred-logger-maintenance – Python scripts for logger (audit log) database maintenance
PAIN (sample implementation of new billing)
::S:: fred-transproc – a Python script for querying various sources of bank transactions (payments) and processing them with Django PAIN
django-pain – Django PAIN application
fred-pain – FRED connector plugin for PAIN also based on Django