How to combine Python and Erlang?

Overview of Pyrlang Library, a Python library, that implements Erlang distribution protocol 
21 August 2017   983

Python is the most popular 2017 programming language, according to the IEEE Spectrum index. An interpreted language, Python has a design philosophy that emphasizes code readability (notably using whitespace indentation to delimit code blocks rather than curly brackets or keywords), and a syntax that allows programmers to express concepts in fewer lines of code than might be used in languages such as C++ or Java. The language provides constructs intended to enable writing clear programs on both a small and large scale.

Erlang is a general-purpose, concurrent, functional programming language, as well as a garbage-collected runtime system. Elixir, one of the most popular "young" programming language, runs on the Erlang virtual machine (BEAM).

How to combine Python and Erlang?

For this purpose, Pyrlang Library will suit. 

Pyrlang is a Python library which implements Erlang distribution protocol and creates an Erlang-compatible node in your Erlang cluster.

You can send and receive messages, spawn “processes” on Python side, which will be addressable from Erlang using familiar Erlang concepts like message sending to process identifiers or registered names. Also same works from Python: you can address Erlang processes, send messages to them, monitor and link with them.

The library is designed to be dropped into existing code base with very few changes required.

Learn more at official website.

NGINX to Release Unit 1.3 Beta

Developers expanded the ability to run web applications in Python, PHP, Perl, Ruby and Go
16 July 2018   95

In open access, a beta version of the NGINX Unit 1.3 application server was released. Developers continued to expand the ability to run web applications in Python, PHP, Perl, Ruby and Go. The project code is written in C and is distributed under the Apache 2.0 license.

Features

Version 1.3 eliminates the problems with handling errors when installing HTTP connections.

Among other changes:

  • parameter max_body_size to limit the size of the body of the request;
  • new parameters for setting timeouts when setting up an HTTP connection:
         "settings": {
              "http": {
                  "header_read_timeout": 30,
                  "body_read_timeout": 30,
                  "send_timeout": 30,
                  "idle_timeout": 180,
                  "max_body_size": 8388608
              }
          },
  • automatic use of the Bundler where possible in the Ruby module;
  • http.Flusher interface in the module for the Go language;
  • The possibility of using characters in the UTF-8 encoding in the request headers.

The first version of the NGINX 1.1 application server was released in mid-April 2018. Under the control of NGINX Unit, several applications can be executed simultaneously in different programming languages, the startup parameters of which can be changed dynamically without the need to edit the configuration files and restart.