• Stars
    star
    181
  • Rank 205,112 (Top 5 %)
  • Language
    Go
  • License
    Other
  • Created almost 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Платформа создания микросервисов на 1С-подобном языке

GitHub issues Travis

Gonec Logo

Demo site

Presentation Docs

Цели

Платформа Гонец:Микросервисы создана для решения программистами 1С задач, связанных с высокопроизводительными распределенными вычислениями, создания микросервисов, вэб-сервисов и вэб-порталов для работы тысяч пользователей, работы с высокоэффективными базами данных, с использованием синтаксиса языка, похожего, но не ограниченного возможностями языка 1С. Для этого интерпретатор встраивается в решения на языке Go.

Описание синтаксиса языка и примеры использования интерпретатора

Документация находится здесь

Пример приложения "Список задач":

Todo application

Масштабируемость языка и платформы

Язык Гонец расширяется путем изменения правил синтаксиса в формате YACC, а так же написания библиотек структур и функций на Го, которые могут быть доступны как объекты метаданных в языке Гонец.

Посмотреть на использование интерпретатора в роли микросервиса можно по ссылке выше. В этой реализации в интерпретатор встроена простая система запуска кода через обычный браузер.

Какова производительность интерпретатора?

Производительность выше, чем у интерпретатора 1С, и соответствует скорости программ на Go и скорости работы библиотек, написанных на Go.

Интерпретатор языка использует повторное выделение памяти в синхронизированном пуле, что сокращает расход памяти даже при выполнении глубоких рекурсивных алгоритмов.

Пример сравнения производительности цикла без тела, перебор значений от 1 до 1 млн. Участники сравнения:

  • Гонец с регистровой виртуальной машиной
  • 1С:Предприятие 8.3.9.2170 (файловая)

PerfVs1C

Производительность одновременного запуска 1000 серверных и 1000 клиентских подключений, по протоколам TCP и HTTP, на 4-ядерном Core-i5 3570

PerfConnect

Какой статус разработки интерпретатора?

Интерпретатор работает стабильно, протестирован и находится в стадии разработки стандартной библиотеки.

More Repositories

1

hls-streamer

hls video streaming from OBS Studio source to clients browsers
Go
35
star
2

goerd

Golang PostgreSQL schema migration tool
Go
25
star
3

highloadcup2018

HighLoad Cup 2018
Go
14
star
4

redispubsub

Redis Streams queue driver for https://godoc.org/gocloud.dev/pubsub package
Go
13
star
5

xml2json

Universal unmarshal xml and re-marshal it to json
Go
10
star
6

fsm

finite state machine in Go
Go
6
star
7

hex_arch_example

Example of Hexagonal Architecture for training course
Go
5
star
8

rustime

format time (time.Time) in russian language - library
Go
4
star
9

bingo

Embed binary or html/css/js file or weblink into go package variable
Go
4
star
10

pgparty

Postgres database/sql access layer with Go generics 1.18+
Go
4
star
11

ypayfunc

Yoomoney payment notification function for Yandex Cloud Functions
Go
3
star
12

chandal

Abstract data layer with channels - example
Go
3
star
13

ldcache

Loading cache with Go generics 1.18+
Go
3
star
14

easysettings

Easy getting app settings from json, environment and flags with struct tags
Go
2
star
15

inmemdb

simple in-memory datatables with join iterators on column indexes, compatible with sqlx longtime store
Go
2
star
16

galg

Some algorithms and data structures with Go generics 1.18+
Go
2
star
17

hexagonarch

Hexagonal (clean) architecture template with Golang
Go
2
star
18

goscript

Execution of scripts in the language go
Go
2
star
19

wallpaperloader

Randomly load wallpaper from images.yandex.ru or Bing or Unsplash services
Go
2
star
20

diff

fast diff library for Myers algorithm
Go
2
star
21

siphash

Fast hash for short bytes and strings
Go
1
star
22

kafkaframe

Go and Kafka pubsub templates
Go
1
star
23

cmemdb

Column in-memory database engine with join operations
Go
1
star
24

grpcmtls

Golang mTLS grpc server and client
Go
1
star
25

torrentfs

torrentfs with multiple dirs watching
Go
1
star
26

bulmactl

Bulma CSS controller for rapid SPA webapps with Go
Go
1
star
27

taxi1c

Extracting some of 1c interface taxi
CSS
1
star