13 unstable releases (4 breaking)

Uses new Rust 2024

0.4.0 Dec 8, 2025
0.3.4 Oct 17, 2025
0.3.2 Aug 14, 2025
0.2.2 Jun 12, 2025
0.0.0 Mar 20, 2024

#1231 in Network programming

Download history 77/week @ 2025-09-18 108/week @ 2025-09-25 179/week @ 2025-10-02 44/week @ 2025-10-09 267/week @ 2025-10-16 49/week @ 2025-10-23 11/week @ 2025-12-04 25/week @ 2025-12-11 14/week @ 2025-12-18 12/week @ 2025-12-25 17/week @ 2026-01-01

74 downloads per month
Used in 6 crates

LGPL-3.0-or-later

400KB
7.5K SLoC

ProSA - Protocol Service Adaptor

ProSA is a merge of multiple Worldline internal product concepts caviarized to be released as a Rust open-source. The library aimed at providing a simple and lightweight protocol service adaptor for service oriented architectures. The goal of this project is to provide a flexible and scalable platform for developing and deploying microservices, allowing developers to focus on writing business logic while ProSA takes care of the underlying infrastructure concers.

A ProSA mdBook is available if you want to learn everything about ProSA.

Legend

ProSA components are illustrated:

  • Main: main
  • TVF: tvf
  • Processor: processor
  • Settings: settings
  • Adaptor: adaptor

Service approach

ProSA is made to empower SOA (Service Oriented Architecture). To do so, ProSA is built around a service bus that can be local or distributed.

Around the service bus, there are gravitating processors that offer or consume services.

flowchart LR
    proc1(Processor)
    proc2(Processor)
    bus((Main))
    proc1 <--> bus
    bus <--> proc2

ProSA processors can be autonomous or built to connect external systems to make them accessible as a service.

flowchart LR
    ext(External System)
    adapt(Adaptor)
    proc(Processor)
    bus((Main))
    ext <-- Protocol Exchange --> adapt
    subgraph Processor
    adapt <-- protocol adaptation --> proc
    end
    proc -- internal service message --> bus

Getting Started

Everything you need to know about ProSA components is describe in the Docs.rs documentation.

flowchart LR
    main((Main))
    tvf([TVF])
    proc(Processor)
    settings(Settings)
    adapt(Adaptor)
    click main "https://docs.rs/prosa/latest/prosa/core/main/" "Main"
    click tvf "https://docs.rs/prosa_utils/latest/prosa_utils/msg/tvf/" "TVF"
    click proc "https://docs.rs/prosa/latest/prosa/core/proc/" "Processor"
    click settings "https://docs.rs/prosa/latest/prosa/core/settings/" "Settings"
    click adapt "https://docs.rs/prosa/latest/prosa/core/adaptor/" "Adaptor"
    main <--> proc
    adapt <--> tvf
    subgraph Processor
    proc <--> adapt
    end
    settings --> Processor

Deploying

ProSA is not a full product that you can run. It's intended to be a framework to run processors that offer/consume services.

So ProSA needs to be built with a set of processors (internal or external) to work. To build one, please refer to cargo-prosa.

Processor list

Worldline

Third parties

  • Fetcher: Fetch information from remote systems
  • Ollama: Ollama processor

Authors

Worldline

Posterity

Dependencies

~30–50MB
~712K SLoC