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.


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


  • ::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


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