Skip to content

Commit

Permalink
Initial import
Browse files Browse the repository at this point in the history
  • Loading branch information
sophokles73 committed Oct 17, 2024
1 parent 2151ab0 commit 36d3457
Show file tree
Hide file tree
Showing 27 changed files with 499 additions and 0 deletions.
34 changes: 34 additions & 0 deletions .github/workflows/gh-pages.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: GitHub Pages

on:
push:
branches:
- main # Set a branch to deploy
pull_request:

jobs:
deploy:
runs-on: ubuntu-22.04
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod

- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: 'latest'
extended: true

- name: Build
run: hugo --minify

- name: Deploy
uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/main'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.hugo_build.lock
public/
resources/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "themes/universal"]
path = themes/universal
url = https://github.com/devcows/hugo-universal-theme
5 changes: 5 additions & 0 deletions archetypes/default.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
+++
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
date = {{ .Date }}
draft = true
+++
246 changes: 246 additions & 0 deletions config/_default/hugo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
baseurl = "https://eclipse-uprotocol.github.io/" # Configure URL. if using gh-pages https://github.com/<username>/hugo-universal-theme URL: https://<username>.github.io/hugo-universal-theme/
title = "Eclipse uProtocol"
theme = "universal"
#themesDir = "../.."
languageCode = "en-us"
# Site language. Available translations in the theme's `/i18n` directory.
defaultContentLanguage = "en"

# number of words of summarized post content (default 70)
summaryLength = 70

# Define the number of posts per page
paginate = 10

# not pluralize title pages by default
pluralizelisttitles = false

[services]
[services.disqus]
# Enable comments by entering your Disqus shortname
Shortname = ""
[services.googleAnalytics]
# Enable Google Analytics by entering your tracking code
id = ""

[menu]

# Main menu
[[menu.main]]
name = "About"
url = "/motivation/"
weight = 1

[[menu.main]]
name = "Getting Started"
url = "https://github.com/eclipse-uprotocol#how-to-get-started"
weight = 2

#[[menu.main]]
#name = "Specification"
#identifier = "menu.spec"
#url = "https://github.com/eclipse-uprotocol/up-rust"
#weight = 5

#[[menu.main]]
#identifier = "contact"
#name = "Contact"
#url = "/contact/"
#weight = 6


# Top bar social links menu

#[[menu.topbar]]
#weight = 1
#name = "Phone"
#url = "tel:+12 34 567 89 01"
#pre = "<i class='fas fa-2x fa-phone'></i>"

#[[menu.topbar]]
#weight = 2
#name = "GitHub"
#url = "https://github.com/eclipse-uprotocol"
#pre = "<i class='fab fa-2x fa-github'></i>"

#[[menu.topbar]]
#weight = 3
#name = "Facebook"
#url = "http://facebook.com"
#pre = "<i class='fab fa-2x fa-facebook'></i>"

#[[menu.topbar]]
#weight = 4
#name = "Twitter"
#url = "http://twitter.com"
#pre = "<i class='fab fa-2x fa-twitter'></i>"

#[[menu.topbar]]
#weight = 5
#name = "Email"
#url = "mailto:hello@universal.com"
#pre = "<i class='fas fa-2x fa-envelope'></i>"

[params]
#viewMorePostLink = "/blog/"
#author = "The Eclipse uProtocol project"
#defaultKeywords = ["SDV", "automotive", "communication"]
#mainSections = ["blog"]
#defaultDescription = "Connect Automotive Apps and Services, everywhere."

# Social media
#facebook_site = "" # the Facebook handle of your site ('https://www.facebook.com/HANDLE')
#twitter_site = "GoHugoIO" # the Twitter handle of your site (without the '@')
#default_sharing_image = "img/sharing-default.png"

# Google Maps widget: If `googleMapsApiKey` is not set, no key will be passed to Google (which likely results in a broken map widget).
enableGoogleMaps = false
#googleMapsApiKey = "AIzaSyAv7Sza8NSp9_l_g8G2vlo0H4ydEPn_2jY"

#latitude = "-12.043333"
#longitude = "-77.028333"

# Style options: default (light-blue), blue, green, marsala, pink, red, turquoise, violet
style = "blue"

# Since this template is static, the contact form uses www.formspree.io as a
# proxy. The form makes a POST request to their servers to send the actual
# email. Visitors can send up to a 50 emails each month for free.
#
# What you need to do for the setup?
#
# - register your account to https://formspree.io/register
# - login and create new form
# - set your form's endpoint url under 'formspree_action' below
# - upload the generated site to your server
# - test a dummy email yourself
# - you're done. Happy mailing!
#
# Enable the contact form by entering your Formspree.io endpoint url
#formspree_action = "https://formspree.io/sample/of/endpoint"
#contact_form_ajax = false

# Formspree form supports Google reCAPTCHA Key (type v2).
# If you use this feature, you should enable reCAPTCHA feature in the Formspree dashboard.
#
# By default, Formspree use a redirect page for recaptcha widget.
# If you use a recaptcha widget in your contact page, you should do next steps.
# (if you don't want, skip these steps)
#
# 1. register your site on Google recaptcha admin page: https://www.google.com/recaptcha/admin
# 2. select reCAPTCHA v2 and checkbox widget type.
# 3. remember site key and secret key.
# 4. enter secret key into "Custom reCAPTCHA Key" field in your Formspree form setting page.
# 5. change `enableRecaptchaInContactForm` is to true
# 6. enter site key into `googleRecaptchaKey` to enable a recaptcha widget in your page.
#
#enableRecaptchaInContactForm = false
#googleRecaptchaKey = "site_key_for_google_recaptcha"

#about_us = "<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>"
copyright = "Copyright (c) 2024 Contributors to Eclipse uProtocol"

# Format dates with Go's time formatting
date_format = "January 2, 2006"

dropdown_mouse_over = false

disabled_logo = false
logo_text = "Eclipse uProtocol"

logo = "img/uprotocol_img.png"
#logo_small = "img/logo-small.png"
contact_url = "/contact"
address = """<p class="text-uppercase"><strong>Universal Ltd.</strong>
<br>13/25 New Avenue
<br>Newtown upon River
<br>45Y 73J
<br>England
<br>
<strong>Great Britain</strong>
</p>
"""

[permalinks]
blog = "/blog/:year/:month/:day/:filename/"

# Enable or disable top bar with social icons
[params.topbar]
enable = false
#text = """<p class="hidden-sm hidden-xs">Contact us on +420 777 555 333 or hello@universal.com.</p>
# <p class="hidden-md hidden-lg"><a href="tel:+420 777 555 333" data-animate-hover="pulse"><i class="fas fa-phone"></i></a>
# <a href="mailto:hello@universal.com" data-animate-hover="pulse"><i class="fas fa-envelope"></i></a>
# </p>
# """

# Enable and disable widgets for the right sidebar
[params.widgets]
categories = true
tags = true
search = true

[params.carouselCustomers]
items = 6
auto_play = false
slide_speed = 2000
pagination_speed = 1000

[params.carouselTestimonials]
items = 4
auto_play = false
slide_speed = 2000
pagination_speed = 1000

[params.carouselHomepage]
# All carousel items are defined in their own files. You can find example items
# at 'exampleSite/data/carousel'.
# For more information take a look at the README.
enable = true
auto_play = true
slide_speed = 1000
pagination_speed = 1000

[params.features]
enable = true
cols = 3 # Default: 3, Available values 2,3,4,6
# All features are defined in their own files. You can find example items
# at 'exampleSite/data/features'.
# For more information take a look at the README.

[params.testimonials]
enable = false
# All testimonials are defined in their own files. You can find example items
# at 'exampleSite/data/testimonials'.
# For more information take a look at the README.
title = "Testimonials"
subtitle = "We have worked with many clients and we always like to hear they come out from the cooperation happy and satisfied. Have a look what our clients said about us."

[params.see_more]
enable = true
icon = "far fa-file-alt"
title = "Do you want to know more?"
subtitle = "The uProtocol Specification has all the details about how it works, what APIs are available to application developers and how to add support for additional transport protocols and programming languages."
link_url = "https://github.com/eclipse-uprotocol/up-spec"
link_text = "uProtocol Specification"

[params.clients]
enable = false
# All clients are defined in their own files. You can find example items
# at 'exampleSite/data/clients'.
# For more information take a look at the README.
title = "Our Clients"
subtitle = ""

[params.recent_posts]
enable = false
title = "From our blog"
subtitle = "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo."
hide_summary = false

[params.footer.recent_posts]
enable = false

[taxonomies]
category = "categories"
tag = "tags"
author = "authors"
18 changes: 18 additions & 0 deletions content/motivation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
date: 2023-10-01T04:14:54-08:00
description: "Why do we need uProtocol?"
title: "Why do we need this?"
---
The automotive industry faces a number of challenges related to software communication:

* In-vehicle communication is largely inherited from legacy architectures that were mostly based on CAN networks. In addition to mechatronics software for which the existing infrastructure was developed, vehicles now include multiple powerful SoCs that run massive amounts of software. This software requires new communications mechanisms.
* Vehicles are now connected to the cloud and other devices like mobile phones. These communication links need to recover from loss of connection and provide secure data transmission, imposing additional requirements on the communications framework.
* Access to vehicle data from the cloud and sharing of this data in the cloud, drives yet other requirements such as scaling and reliability.
* Despite having varying requirements, all above requirements aim at transferring the same vehicle-related data, and end up being served by the same software components running that produce the data.
* Defining specific communication patterns for each and every _environment_ results into redundant work, unnecessary complexity and potential incompatibilities.

Eclipse uProtocol&trade; addresses these challenges by providing a small number of communication patterns, exposed via a consistent set of programming APIs which are available across the whole vehicle eco-system (in-vehicle ECUs, cloud and mobile). This approach enables seamless communication between applications and services, regardless of where they are deployed. Using uProtocol, application developers can focus on implementing differentiating functionality, rather than the low-level plumbing necessary to access relevant services they require. On the other hand, service providers can implement their service once for all consumers, wherever they are hosted.

Multiple communication mechanisms have been developed over the years, each solving specific problems: SOME/IP for in-vehicle inter-ECU communication, MQTT for IoT-to-Cloud communication, Linux IPC variants for intra-SoC communication, Binder for Android IPC etc. A connected vehicle system will require multiple of these systems, creating the challenge of bridging them together. Rather than trying to develop yet another, _more universal_ protocol, uProtocol's approach is to _map_ its APIs to existing frameworks, and ensure interoperability across them. This approach enables to use and combine multiple communication frameworks, while ensuring consistent end-to-end communication between software components.

**NOTE:** None of these challenges are specific to the automotive sector. Instead, other industries like defense, rail and aviation all face similar issues.
5 changes: 5 additions & 0 deletions data/carousel/uprotocol_overview.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
weight: 1
title: "Eclipse uProtocol&trade;"
description: |
<p>Connect Automotive Apps and Services, everywhere.</p>
image: "img/uprotocol_overview.drawio.svg"
5 changes: 5 additions & 0 deletions data/carousel/use_case_notification.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
weight: 2
title: "Notification"
description: |
<p>Send telemetry data to the cloud</p>
image: "img/use_case_notification.drawio.svg"
5 changes: 5 additions & 0 deletions data/carousel/use_case_pub_sub.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
weight: 3
title: "Publish/Subscribe"
description: >
<p>React to status changes in services</p>
image: "img/use_case_pub_sub.drawio.svg"
5 changes: 5 additions & 0 deletions data/carousel/use_case_rpc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
weight: 4
title: "Service Invocation"
description: >
<p>Invoke vehicle functions from mobile apps</p>
image: "img/use_case_rpc.drawio.svg"
6 changes: 6 additions & 0 deletions data/features/automotive_grade.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
weight: 5
name: "Automotive Grade"
icon: "fa-regular fa-thumbs-up"
url: ""
description: |
uProtocol strives to allow being employed in **safety critical** systems by providing documentation and artifacts relevant to **certification**.
6 changes: 6 additions & 0 deletions data/features/cross_language.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
weight: 2
name: "Cross Language"
icon: "fa-solid fa-terminal"
url: ""
description: |
uProtocol supports implementing service components in multiple programming languages like **Java**, **Rust**, **C++** and **Python**.
6 changes: 6 additions & 0 deletions data/features/cross_platform.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
weight: 3
name: "Cross Platform"
icon: "fa-solid fa-network-wired"
url: ""
description: |
uProtocol can be used to connect service components running on arbitrary operating systems and platforms like **Linux**, **Android** and **QNX**.
7 changes: 7 additions & 0 deletions data/features/flexible.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
weight: 4
name: "Flexible"
icon: "fa-solid fa-layer-group"
url: ""
description: |
uProtocol comes with support for a set of standard transport protocols like **Eclipse Zenoh&trade;**, **MQTT** and **SOME/IP** out of the box.
Applications exchange messages by means of **well-defined APIs** which developers can implement to support addtional transports and programming languages.
8 changes: 8 additions & 0 deletions data/features/mep.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
weight: 1
name: "Message Exchange Patterns"
icon: "fa-regular fa-envelope"
url: ""
description: |
uProtocol supports common messaging patterns like **Remote Procedure Call (RPC)**, **Publish/Subscribe** and **Notifications**.
Messages may contain arbitrary payload and are routed transparently across transports and hosts using a common URI based
addressing scheme and additional properties like message priority and authority.
Loading

0 comments on commit 36d3457

Please sign in to comment.