DEV Community

Cover image for 7 Open Source Projects You Should Know - Italian Edition โœ”๏ธ [BONUS]
Domenico Tenace for This is Learning

Posted on • Originally published at Medium

7 Open Source Projects You Should Know - Italian Edition โœ”๏ธ [BONUS]

Overview

Hi everyone ๐Ÿ‘‹๐Ÿผโ€‹
This will be an article a little different from the others: in fact I will not take projects written in a certain language, but this time I will talk about Italian Open Source projects ๐Ÿ‡ฎ๐Ÿ‡น
Yes, Italy is my country and and the source of this article is Italia Open-Source ๐Ÿš€, the organization that keeps track of the state of Open Source in Italy.
Let's start ๐Ÿค™๐Ÿผ


1. Fiume

Fiume is a zero-dependency, simple, and flexible state machine library written in TypeScript and supports Deterministic and partially Non-Deterministic state machines. It is compatible with all JavaScript runtimes (Node.js for example ๐Ÿ˜Ž) and is designed to manage the flow of a system through various states. It provides a lightweight and intuitive way to define states, transitions, and hooks for state entry, exit, and transition events ๐Ÿ•ถ

GitHub logo marco-ippolito / fiume

zero-dependency, lightweight finite state machine in Typescript

Fiume ๐Ÿž๏ธ

npm version build status biome npm bundle size

Fiume is a zero-dependency, simple, and flexible state machine library written in TypeScript It supports Deterministic and partially Non-Deterministic state machines It is compatible with all JavaScript runtimes and is designed to manage the flow of a system through various states. This library provides a lightweight and intuitive way to define states, transitions, and hooks for state entry, exit, and transition events.

Unlike other libraries, Fiume does not require hardcoding state transitions. Instead, you can write the transition logic inside the transitionTo function.

Docs

You can find documentation and examples at fiume.dev.

Installation

npm install fiume
Enter fullscreen mode Exit fullscreen mode

Usage

import { StateMachine, State } from "fiume";
// Define a simple ON-OFF machine
const states: Array<State> = [
  {
    id: "OFF",
    initial: true,
    transitionGuard: ({ event }) => event === 'button clicked',
    transitionTo: ()
โ€ฆ
Enter fullscreen mode Exit fullscreen mode

2. FusionCache

FusionCache is an amazing project! โœŒ๐Ÿป
It is an easy to use, fast and robust hybrid cache with advanced resiliency features and has all sorts of different types of caches: memory caching, distributed caching, http caching, CDNs, browser cache, offline cache,ecc ๐Ÿค™๐Ÿป

GitHub logo ZiggyCreatures / FusionCache

FusionCache is an easy to use, fast and robust hybrid cache with advanced resiliency features.

FusionCache logo

FusionCache

License: MIT Nuget

๐Ÿ™‹โ€โ™‚๏ธ Updating to v1.0.0 ? please read here.

FusionCache is an easy to use, fast and robust hybrid cache with advanced resiliency features.

It was born after years of dealing with all sorts of different types of caches: memory caching, distributed caching, http caching, CDNs, browser cache, offline cache, you name it. So I've tried to put together these experiences and came up with FusionCache.

FusionCache diagram

Being a hybrid cache means it can transparently work as either a normal memory cache (L1) or as a multi-level cache (L1+L2), where the distributed 2nd level (L2) can be any implementation of the standard IDistributedCache interface: this will get us better cold starts, better horizontal scalability, more resiliency and overall better performance.

FusionCache also includes an optional backplane for realtime sync between multiple nodes and advanced resiliency features like cache stampede protection, a fail-safe mechanism, soft/hard timeouts, eager refresh, fullโ€ฆ

3. micro-lc

micro-lc is an open source micro-frontend orchestrator.
It offers a solution for building flexible, multi-tenant frontend applications and aims to be as lightweight as possible and to improve web security ๐ŸคŸ๐Ÿป

GitHub logo micro-lc / micro-lc

An open source micro-frontend orchestrator

micro-lc

Mia-Platform

npm version npm downloads License ts

Introduction

micro-lc is an open source micro-frontend orchestrator for building flexible, multi-tenant frontend applications. And much more!

Tip: use the official playground to try micro-lc immediately.

An introduction about micro frontend and how micro-lc works:

micro-lc introduction

Installation

micro-lc is shipped as an ES module CDN bundle and can be imported in any HTML page. Moreover, a dockerized webserver is available on Docker Hub.

Read the docs to learn how you can use micro-lc in your next project!

Handle the repo

Build

This repository is made of 5 subpackages. The dependencies can be sketched as follows:

  `interfaces`
           |
    `composer`
           |
`orchestrator` `iconic`
           |    |
          `layout`

to build the packages there's a script which can be invoked after install as

yarn initialize [OPTIONS]
Enter fullscreen mode Exit fullscreen mode

where OPTIONS are

  1. -c or --cleanup
  2. one of the subpackages: interfaces, iconic, composer, orchestrator, and layout (default)

By using cleanup you require initialize toโ€ฆ

4. Nuvolaris

Nuvolaris is an Open Source project to build a complete and portable Serverless environment that runs in every Kubernetes.
It is as a distribution of the Apache OpenWhisk serverless engine โ˜๏ธ

GitHub logo nuvolaris / nuvolaris

Nuvolaris is as a distribution of the Apache OpenWhisk serverless engine that runs in every Kubernetes

Welcome to Nuvolaris!

Nuvolaris is an Open Source project to build a complete and portable Serverless environment that runs in every Kubernetes.

Technically it is a distribution of Apache OpenWhisk released under the Apache Licence 2.0 (like OpenWhisk itself), that includes other services out of the box.

We want to build a complete distribution of a serverless environment that:

  • It is easy to install and manage.
  • Potentially runs in every Kubernetes.
  • It is tested regularly against a set of supported Kubernetes environments.
  • Includes a (possibly large) number of integrated services.

This is the main differentiation from Apache OpenWhisk, as it only provides a basic engine for serverless. Our goals are described in our roadmap document to read about.

TL;DR

If you are in a hurry, here a few starting points:

5. Faker

Do you know PHP Faker?
Good, this project is the same but written in Python!
Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you ๐Ÿซต๐Ÿป

GitHub logo joke2k / faker

Faker is a Python package that generates fake data for you.

Faker is a Python package that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you.

Faker is heavily inspired by PHP Faker, Perl Faker, and by Ruby Faker.


_|_|_|_|          _|
_|        _|_|_|  _|  _|      _|_|    _|  _|_|
_|_|_|  _|    _|  _|_|      _|_|_|_|  _|_|
_|      _|    _|  _|  _|    _|        _|
_|        _|_|_|  _|    _|    _|_|_|  _|

Latest version released on PyPI Build status of the master branch Test coverage Package license


Compatibility

Starting from version 4.0.0, Faker dropped support for Python 2 and from version 5.0.0 only supports Python 3.7 and above. If you still need Python 2 compatibility, please install version 3.0.1 in the meantime, and please consider updating your codebase to support Python 3 so you can enjoy the latest features Faker has to offer. Please see the extended docs for more detailsโ€ฆ

6. EVO Framework

Evo Framework is a powerful package for quickly writing modular web applications/services in Golang.
It is a backend development solution designed to facilitate efficient development using the Go programming language. It is built with a focus on modularity and follows the MVC (Model-View-Controller) architectural pattern ๐Ÿช

GitHub logo getevo / evo

Evo is a powerful package for quickly writing modular web applications/services in Golang aimed both backend and frontend.

EVO Framework

EVO Framework is a backend development solution designed to facilitate efficient development using the Go programming language. It is built with a focus on modularity and follows the MVC (Model-View-Controller) architectural pattern. The core of EVO Framework is highly extensible, allowing for seamless extension or replacement of its main modules.

Key Features

  • Modularity: EVO Framework promotes modularity, enabling developers to structure their codebase in a modular manner.
  • MVC Structure: Following the widely adopted MVC pattern, EVO Framework separates concerns and improves code organization.
  • Comprehensive Toolset: EVO Framework provides a rich set of tools, eliminating the need for developers to deal with low-level libraries and technologies.
  • Enhanced Readability: By leveraging the EVO Framework, your code becomes more readable and clear, enhancing collaboration and maintainability.

With EVO Framework, you can focus on your programming logic and rapidly develop robust backend solutions without getting bogged down byโ€ฆ

7. Caronte

Caronte is a tool to analyze the network flow during capture the flag events of type attack/defence. It reassembles TCP packets captured in pcap files to rebuild TCP connections, and analyzes each connection to find user-defined patterns. The patterns can be defined as regex or using protocol specific rules. The connection flows are saved into a database and can be visualized with the web application ๐ŸŒŠ

GitHub logo eciavatta / caronte

A tool to analyze the network flow during attack/defence Capture the Flag competitions

caronte$

Test Status Deploy Status codecov Codacy Badge GitHub release (latest by date) Language License

Caronte is a tool to analyze the network flow during capture the flag events of type attack/defence It reassembles TCP packets captured in pcap files to rebuild TCP connections, and analyzes each connection to find user-defined patterns The patterns can be defined as regex or using protocol specific rules. The connection flows are saved into a database and can be visualized with the web application. REST API are also provided.

Features

  • immediate installation with docker-compose
  • no configuration file, settings can be changed via GUI or API
  • pcaps to be analyzed can be loaded via curl, either locally or remotely, or via the GUI
    • it is also possible to download the pcaps from the GUI and see all the analysis statistics for each pcap
  • rules can be created to identify connections that contain certain strings
    • pattern matching is done through regular expressions (regex)
    • regex in UTF-8 and Unicode formatโ€ฆ

Conclusion

This list lists seven open source projects that are worth checking out, either to use them or even to contribute๐Ÿ––
Happy coding!โœจ


Hi๐Ÿ‘‹๐Ÿป
My name is Domenico, software developer passionate of Vue.js framework, I write article about it for share my knowledge and experience.
Don't forget to visit my Linktree to discover my projects ๐Ÿซฐ๐Ÿป

Linktree: https://linktr.ee/domenicotenace

Follow me on dev.to for other articles ๐Ÿ‘‡๐Ÿป

If you like my content or want to support my work on GitHub, you can support me with a very small donation.
I would be grateful ๐Ÿฅน

Buy Me A Coffee

Top comments (0)