{'fraction_non_alphanumeric': 0.0241423125794155, 'fraction_numerical': 0.0, 'mean_word_length': 5.459016393442623, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Distributed Instant Messaging Architecture based on the Pastry Peer-To-Peer Routing Substrate

Current Instant Messaging systems rely on architectures that include central, or only partly distributed, server(s). Although some systems can exchange messages peer-to-peer, the user registration and lookup are still based on a centralized solution. We have implemented a fully distributed instant messaging system by utilizing the Pastry peer-to-peer routing substrate. We use the Pastry object insertion functionality to insert user information when a user joins the network and a novel search engine to effectively perform distributed user lookup. Currently, our system runs in the FreePastry simulator and supports joining/leaving the network, searching for users and message exchange.