Подтвердить что ты не робот

Есть ли хорошие и бесплатные библиотеки для разработки веб-приложений в C?

Я немного искал в Интернете, но все, что я нашел, - это заброшенные проекты и поддержка только CGI.

EDIT: C используется не только для написания драйверов или встроенных систем. У нас есть mailreaders, newsreaders, редакторы и т.д. Все написано на C. Я написал две BBS в прошлом веке, прежде чем сеть стала популярной. Библиотеки улучшаются, и вам не нужно повторно изобретать колесо снова и снова. Хорошие структуры данных и обработка строк легко возможны в C. Но, тем не менее, в веб-разработке не так много.

Я хотел бы вернуться к своим корням и попытаться написать веб-приложения в C.

Что касается плохих языков: люди используют С++, Perl и PHP для веб-приложений. Это не мешает им, что общее восприятие этого языка не очень хорошо.

EDIT 2: я написал программное обеспечение BBS на C, и никто не думал, что это сумасшедшая идея, хотя другие сделали это в GfA BASIC. Я не понимаю, почему сегодня его считают плохой идеей. Посмотрите программное обеспечение, которое вы используете, или наиболее распространенные языки программирования в программном обеспечении с открытым исходным кодом.

4b9b3361

Ответ 1

clearsilver должен отлично выполнять работу http://www.clearsilver.net/docs/

и если вам нужен какой-то материал GC, вы всегда можете использовать boehm weisser gc.

Отношения Friedrich

Ответ 2

Если вы приключенны и открыты для нового веб-сервера, посмотрите G-WAN. Он обслуживает динамический контент с помощью сценариев ANSI-C. Он маленький, быстро и бесплатный (хотя и не открытый источник). Просмотрите запуск образцов с источником, чтобы получить представление о разработке G-WAN.

Если вы проводите время на сайте G-WAN, вы заметите, что его разработчик, Пьер Готье, имеет сильные мнения о состоянии разработки программного обеспечения сегодня. Согласитесь или не согласны, его перспектива интересна, учитывая возрастающий размер и сложность инструментов, которые мы используем каждый день.

Ответ 3

Как отмечали другие, C не лучший язык для разработки веб-приложения. Однако, если ядро ​​приложения уже написано на C, и вы в порядке с только одним пользователем, обращающимся к приложению в то время, и вы можете доверять этому пользователю (например, потому что приложение будет доступно только за брандмауэром), то интересным выбором является swill library. Это встроенный веб-сервер, который с помощью нескольких строк может предоставить веб-интерфейс для любого приложения C. Я использовал его дважды, для рефакторинга CScout и для обеспечения пользовательского интерфейса для устаревшего кода оптимизации производственной линии, и он работал как очарование.

Ответ 4

Я использовал GNU libmicrohttpd, и это превосходно: ясный API; легкий; с открытым исходным кодом и до сих пор активно развивается; и он хорошо вписывается в наше существующее приложение C. Важно отметить, что он лицензируется под LGPL, но Hughes libhttpd имеет двойную лицензию, что может быть проблемой для коммерческих проектов. (Отклик на ответ Якоба Эрикссона для получения первой.)

Изменить: Также упоминается здесь.

Ответ 5

В дополнение к Swill я бы посмотрел GNU libmicrohttpd и Hughes libhttpd. Оба предназначены для встраивания веб-серверов в программы. Я почти решил Hughes для веб-интерфейса сортировки для Berkeley DB, но может идти по пути Python.

Ответ 7

Я не пробовал, может быть, кто-то сочтет это полезным: klone. Это основа для создания автономных веб-серверов и html-шаблонов с помощью встроенный C.

Ответ 8

Игнорируйте скептиков, которые говорят, что C не является приемлемым или целесообразным. Предположение, что они делают, это то, что они пишут ваше приложение. Это может быть хорошим опытом обучения для вас.

C имеет некоторые особые преимущества перед другими модулями. Вы можете легко написать фреймворк для него, который делает много тяжелой работы для вашего приложения без особых усилий.

Опасность - это безопасность и разумность вашего кода. Совет, который у меня есть, - это попробовать Django или Rails и посмотреть, как они это делают, а затем вернуть все свои идеи на C.

Ваше время разработки может быть "медленнее", но, с другой стороны, у вас будет глубокое знание вашего стека и фреймворка.

Ответ 9

Я не уверен в библиотеке, но если бы вы могли посетить этот сайт vijaymukhi.com вы можете найти некоторые обучающие проекты, разработанные с использованием C.

Вы можете специально проверить "Бронирование авиабилетов" и "Модули электронной торговли".

ПРИМЕЧАНИЕ. Это только учебные проекты с c и cgi.

Пожалуйста, проверьте раздел "Проекты (с источником)" на treemenu.

P.S: Я не рекомендую это для производственных/живых сайтов.

Ответ 10

Если у вас нет особого требования использовать C, вы должны, вероятно, пересмотреть свой выбор языка. Даже с фреймворком (который, как вы уже заметили, трудно прийти к этим дням), webapp в C, вероятно, будет очень подвержен ошибкам, особенно для буфера, связанного с ненадежным вводом пользователя.

Если у вас есть код SDK или устаревший код на C, который вам нужен для доступа, и нет альтернативы, кроме как использовать его, вы все равно можете получить это по-разному с другого языка.

Например, в Java есть JNI. И вы всегда можете обернуть SDK в программу CLI, которая делает то, что вам нужно, и запустить ее из вашего webapp (который затем может быть написан на любом языке). Те же самые предостережения о переполнении буфера и т.д. Будут применяться, но по крайней мере вы можете запрограммировать защиту в программе CLI (т.е. Не доверять своим аргументам и дезинфицировать их перед использованием).

Другой альтернативой может быть использование IPC для процесса, который обеспечивает доступ к SDK "C" или устаревшим функциям кода. Те же аргументы в отношении защитного программирования применяются.

Ответ 11

Трудно представить себе ситуацию, когда C - лучший язык для разработки веб-приложения. Так же, как вы не хотите писать графическое приложение в FORTRAN или драйвер устройства в COBOL.

Почему бы не попробовать PHP? Синтаксис довольно похож на C.

Ответ 12

Ну, много лет назад я написал компилятор "CSP", очень простой эквивалент JSP, но в C. Он сгенерировал CGI C-код. Думаю, вы могли бы использовать THAT в качестве базы или для простого экспериментирования. Я никогда ничего не делал с этим, поэтому вы можете иметь его, если хотите (и если я найду его)... просто напишите мне.

Ответ 13

См. C Библиотека HyperText.

Его библиотека для написания веб-приложений в C. Она предоставляет вам всю функциональность, необходимую для создания отличных веб-приложений, а также поддержку встроенных функций внутри HTML файлов.

Ответ 14

Почему бы не преобразовать старый код C в плагин php/apache? Тогда вы получите лучшее из обоих миров, современный веб-язык/сервер, но используя весь существующий код в своем устаревшем приложении.